How I run a Rails SaaS with local open-weight agents
One person. One Rails 8.0 multi-tenant SaaS, the product at this domain. Agents write most of the code. Numbers, not predictions. Estimates are marked ~.
Rig
- MacBook, Apple M2 Max, 64 GB unified memory.
- Inference on-device, 6–8 h/day under agent load.
- No GPU cluster. No cloud inference on the default path.
Models
- Daily driver: open weights, 27B parameters, Q6 quantization, runs on the machine above.
- Default-path cost per token: 0. Data leaves the machine: no.
- Rented models only when a task needs one, provider must offer zero data retention. Minor share of tasks.
Harness
- Tools: omp (Oh My Pi) with opencode.
- One task = one branch = one spec.
- Loop: write the spec, review it thoroughly, agent implements strictly to spec, gate, merge.
- The gate is the spec, not diff-skimming. Plans are reviewed hard before any code runs.
- Rejection rate: under 20% (~, estimate). Most rejections are spec gaps, not agent failure, fixed in the next planning round.
Running costs
All-in cost is a rounding error next to any cloud-inference setup. Estimates, marked ~: hardware, electricity, occasional rented models. No cloud inference on the default path.
Receipts, from this platform's git history
(as of 2026-10-01)
- 1,265 commits.
- 94 merged pull requests, each one a spec the agents implemented and the gate accepted.
- 1,315 test runs, 3,945 assertions, 0 failures (full suite on the deployed commit).
What this proves
Execution is not the scarce part, the loop above produces it daily. The scarce part is the spec: deciding what to build and what good looks like. That's the human's job here, one to two hours a day. Nothing merges without it.