aspenx
Claude Code can write three features at once.
Your laptop can only run one.
Your app is six services in one repo. A feature touches two, but clicking through it needs all six up, and three branches in flight means three copies. So ports collide, one shared dev database gets trampled, and logging in on one tab logs you out of another.
AspenX gives every feature its own folder with the full stack running on its own database. The two services you touch run from worktrees with hot reload. The other four boot from prebuilt images of main in seconds.
~/aspenx/invoice-pdf2 of 6 touched
| Service | Checkout | Runs |
|---|---|---|
| billing | feature/invoice-pdf | dev, hot reload |
| web | feature/invoice-pdf | dev, hot reload |
| api | main @ 3f2a9c1 | main image |
| search | main @ 8b17d04 | main image |
| worker | main @ c91e5aa | main image |
| admin | main @ a7c33f9 | main image |
Everything runs inside the feature. Images of main are built once per commit and shared, so the four services you didn't touch cost a container start and nothing more.
- Hostnames, not ports. Every feature gets its own domain, so you stay logged in to three of them at once.
- Databases in seconds. Postgres and Redis run once. Each feature clones its own database from a template, so a migration in one never breaks another.
- Any base, stackable. Pin the untouched services to a release ref, or point one at another feature's branch and build on top of it.
- One Claude session per feature. It starts at the feature root, sees every service, and can only write to the ones you touched.
- Drop it and it's gone. Worktrees, branches, databases, containers and tunnels, removed in one command.
Coming soon · macOS app + CLI