roadmap

Where babystack is going.

One engine — a fresh, seeded, disposable real backend — re-exposed to more consumers over time. We broaden by reaching new consumers (local dev, CI, agents), never by acquiring new problem domains (data generation, masking, hosting). Built one sub-phase at a time, each behind an adversarial-review gate.

Status: pre-alpha · Phase 0 complete (0.1–0.8) · warm-pool speed (0.9) next

phase 0 · the wedge complete

MySQL + Vitest, proven on a real app.

The example app's suite runs against fresh, isolated, seeded real MySQL — parallel workers, zero test-code changes, clean teardown, reproducibly. Every sub-phase shipped with tests and passed the review gate.

0.1 core done

The pure seam — Lease/Pool, injected Clock/CommandRunner, no I/O.

0.2 docker done

The generic muscle — provision, authenticated wait-ready, idempotent dispose, label-scoped GC.

0.3 mysql done

Seeded mysqldump baseline in a scrubbed env; fresh per-worker leased DBs.

0.4 vitest done

globalSetup + per-file setup; DATABASE_URL injected before the app imports.

0.5 parallelism done

A DB per forked worker, cross-worker sentinel, baseline built exactly once, green across repeats.

0.6 safety done

Checksum-verified baselines (BASELINE_CORRUPT) + secret redaction.

0.7 cli + agent done

The baby CLI — doctor · wake · home · reset · sleep, all --json; the agent undo loop.

0.8 example app done

Real Express 5 + Drizzle + MySQL, zero babystack imports, green in CI Tier-2.

what's next

The path to public.

phase 2 · speed as DX next: 0.9

Warm-pool speed.

A pre-warmed container pool + per-worker DBs + async reset — with honest, measured numbers per platform. Plus a retry/cleanup scheduler and orphan-container/volume GC. Correctness before speed, always — the cache trust cliff.

phase 1 · public MVP planned

Ship it wide.

Logical-dump baseline · conservative invalidation hashing + explicit opt-out (lands before any speed path) · local cache · GitHub Actions + CircleCI docs. Flagship post, 3–4 example repos (Prisma / Drizzle / TypeORM), llms.txt.

phase 2.5 · agents planned

The agent data plane.

The same engine over an agent-facing interface — CLI-first (baby wake --json), MCP-optional. Launch into the coding-agent ecosystem. The interface is a choice, not the identity.

phase 3 · breadth planned

More engines, each a mini-launch.

Redis → MinIO (S3) → DynamoDB Local → ElasticMQ (SQS) → the LocalStack driver. The launch cadence is the breadth. Pull-driven — we add an engine when the wedge earns it.

phase 4+ · optional / commercial someday

Sanitized prod imports (masking default-on) · a full local-dev mode · whole-stack consistent-snapshot mode · remote copy-on-write workers and CI database pools. Explored only if the earlier phases pull for it.

the through-line

One engine. New consumers, never new domains.

babystack is the engine that hands you a fresh, seeded, disposable real backend. MySQL + Vitest is the first delivery vehicle; the core investment is the content-addressed cache + a cross-OS copy-on-write clone ladder. We broaden by re-exposing that one engine to local dev, CI, and agents — not by taking on data generation, masking, or hosting. That's the discipline that keeps the tool simple as it grows.

The living plan (with per-sub-phase detail + the deferred hardening backlog) is docs/ROADMAP.md in the repo — this page tracks it.

contribute

Follow along — or help build it.

Pre-alpha and open source (Apache-2.0). Stars, issues, and engine requests all shape the order — here's where to jump in.

star & watch

Star the repo to signal demand, and watch releases so you catch each phase the day it ships.

open an issue

Bugs, rough edges, or a workflow that doesn't fit yet — issues are the fastest way to shape what's built next.

request an engine

Breadth is pull-driven. Tell us which backing service you need next — Redis, S3, SQS, and beyond.