Result
- Per-ticket sandboxes about 10x cheaper and faster than with full databases
- One dev VM at about ₹4–6k a month runs six tickets in parallel
- Merge, deploy to dev, health check and rollback are scripted, not agent-driven
Stack
GoSQLite (dev drivers)DockerCI/CDClaude CodeVS Code in the browser
Built at my day job, where I lead the software team behind the Envizom platform. The code belongs to the company; this write-up comes from my public blog posts.
The problem
The platform is several repos: hardware drivers, a simulator, a backend, a frontend. A new developer needed days to get a working local setup. Once the team started using coding agents, a developer could keep three tasks in flight, and the mistakes moved out of the code and into the branches around it: a change on the wrong branch, a fix that only worked on one machine.
What I built
- The ticket is the spec. A developer writes the task in plain English and drags it to Approved. No IDE, no terminal.
- A full stack per ticket. The orchestrator provisions a branch in every repo, the ticket's own backend, drivers, simulator and frontend, a copy of the dev database and a private HTTPS preview URL.
- The agent works from the thread. It posts the preview link when done; the developer tests it and replies in the same thread. Every prompt is saved with the work it produced, which doubles as the audit trail.
- Shipping is a script. At Git Push, no agent is involved: commit, merge dev in, open and merge the PRs, wait for CI, roll new images onto the dev VM, run health checks, and roll back with a note in the thread if the VM is unhealthy. Production keeps a separate path where people decide.
- Cheap copies. In the rebuilt backend every store has a dev driver; SQLite runs inside the Go process, so copying a database means copying a few files.
Result
Sandboxes about 10x cheaper and faster than with full databases. The dev VM that holds every developer's devbox and the ticket stacks costs about ₹4–6k a month and handles six tickets in parallel. A ticket can wait in QA for a week without blocking anything else.