Monorepo generator and delivery contracts
Generate the product and its delivery path together.
One command writes web, API and worker workspaces, dependency boundaries, local services, CI, containers and a validated route to PM2, Coolify or Kubernetes. Developers and coding agents use the same package-level contract.
What the command writes
A repo with an explicit place for product code, reusable code and infra
Recipes are bundled and versioned. monox.lock records their versions and integrity so
another machine can explain exactly what shaped the repository.
my-product/
├── apps/
│ ├── api/
│ ├── jobs/
│ └── web/
├── packages/
├── infra/
│ ├── docker/
│ └── local/
├── .github/workflows/ci.yml
├── AGENTS.md
├── monox.config.json
└── monox.lock
One source of truth per app
"deployment": {
"schemaVersion": "2",
"id": "jobs",
"kind": "worker",
"network": { "exposure": "none" },
"env": { "secretRefs": [{
"name": "rabbitmq-url",
"target": "RABBITMQ_URL" }] },
"scaling": {
"mode": "keda",
"minReplicas": 0,
"metrics": [{ "type": "rabbitmq",
"sourceRef": "RABBITMQ_URL",
"queue": "jobs", "target": 10 }]
}
}
The root config contains environments, targets and boundaries. It does not repeat an application list.
The setup work MonoX removes
What you do not need to wire by hand
MonoX packages the repeated platform decisions. Your team still owns the product decisions.
-
01
Workspace setup
Package manager, workspace globs, dependency direction and shared agent boundaries.
-
02
Local runtime
Health routes, Docker files and selected services with required-value placeholders in ignored local env files.
-
03
Verification
Immutable install, lock verification, test and build commands in generated CI.
-
04
Delivery model
Typed workloads, probes, limits, scaling signals and target-specific plans.
Local to production
The contract stays the same while the target changes
Package metadata describes the workload. The selected target supplies image, namespace, domain, identity and secret bindings.
- ValidateReject unknown fields, inline secrets and ambiguous targets.
- ExplainShow every default, profile, environment and variant in order.
- PlanBind source, config, target state and adapter digests.
- ApplyUse the built-in local executor or an explicitly injected transport; reject stale plans.
0.2.0 boundary: create-monox writes these contracts, but it does not
install a public monox delivery binary. The sequence below is source-repository
tooling, not a generated-project command.
# MonoX source checkout
yarn monox validate
yarn monox config explain @monox/jobs --env staging
yarn monox plan --env staging --all --output .monox/plan.json
yarn monox apply --plan .monox/plan.json
MonoX draws the boundary. You own what crosses it.
You provide cloud access through OIDC or workload identity, choose domains and managed services, set budgets and capacity, connect external secrets, and approve production changes.
MonoX does not replace a cloud control plane, guarantee provider capacity, or hide destructive operations behind a normal deploy.
0.2 release evidence
Implemented, guarded and still awaiting production proof
Status is tied to tests in the public repository. Planned production claims stay out of the copy.
| Surface | Release status | Evidence |
|---|---|---|
| Deployment contract v2 | Implemented | Package discovery, RFC 7396 overlays, variants and unique target binding |
| Workspace recipes | Built in | JavaScript, TypeScript, Python, PHP and Go catalog with deterministic locks |
| Local and container path | Source-tested | Compose contracts and non-root defaults; complete add-on runtime acceptance is pending |
| PM2, SSH, Coolify and Kubernetes | Guarded | Typed plans and fail-closed transport injection before external state changes |
| AWS and GCP provisioning | Plan only | 0.2.0 renders provider plans only; real sandbox apply is not included |
| Production reference | Not public yet | 42 tracked contracts inventoried; case study waits for security cleanup and canary rollback |