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
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.
The pure seam — Lease/Pool, injected Clock/CommandRunner, no I/O.
The generic muscle — provision, authenticated wait-ready, idempotent dispose, label-scoped GC.
Seeded mysqldump baseline in a scrubbed env;
fresh per-worker leased DBs.
globalSetup + per-file setup;
DATABASE_URL injected before the app imports.
A DB per forked worker, cross-worker sentinel, baseline built exactly once, green across repeats.
Checksum-verified baselines (BASELINE_CORRUPT)
+ secret redaction.
The baby CLI — doctor · wake · home · reset ·
sleep, all --json; the agent undo loop.
Real Express 5 + Drizzle + MySQL, zero babystack imports, green in CI Tier-2.
The path to public.
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.
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.
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.
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.
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.
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.
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 the repo to signal demand, and watch releases so you catch each phase the day it ships.
Bugs, rough edges, or a workflow that doesn't fit yet — issues are the fastest way to shape what's built next.
Breadth is pull-driven. Tell us which backing service you need next — Redis, S3, SQS, and beyond.