Stack posts are usually written by people selling you something, or by engineers who’ve never had to justify a monthly bill to themselves. I’m neither. I spent ten years in startup operations, and now I ship production SaaS solo — Dszape, a hotel management platform with 245+ API routes and 180+ SQL migrations, is the main one.
This is the stack that actually runs it in mid-2026. For each layer I’ll tell you what it does, what it replaced in headcount terms, and what it costs a bootstrapper. At the end: what I’d cut first if money got tight.
If you want the day-to-day workflow of building with this stack, that’s a separate post: how I build SaaS solo with AI.
The Application Layer: Next.js 15, Supabase, Clerk
Next.js 15 (App Router) is the framework. One codebase serves both worlds: server-rendered public pages that Google can index (hotels need their booking pages found) and the interactive private dashboard where receptionists live all day. Before this class of framework, that was two apps and arguably two developers.
Supabase is Postgres with the tedious parts handled — APIs, auth integration, storage. The killer feature for B2B is Row Level Security: tenant isolation enforced by the database itself, so Hotel A structurally cannot read Hotel B’s data even if a query forgets to filter. I went deeper on that in the vertical SaaS post.
Clerk handles identity — signup, login, sessions, the security-sensitive plumbing you should never build yourself. Auth is the one layer where “roll your own to save money” is a genuinely bad trade.
Headcount replaced: a backend engineer and most of a DBA. Not because the tools write your logic, but because they delete the undifferentiated work — auth flows, connection pooling, API scaffolding — that used to consume those roles.
The Shipping Layer: Vercel, Stripe
Vercel is deployment. Git push, live in under a minute, previews on every pull request. I have zero DevOps: no Docker files, no Kubernetes, no pipeline to babysit. For a team of one, every hour not spent on infrastructure is an hour on product.
Stripe is payments and billing. Subscriptions, invoices, webhooks. Payments is the other layer, alongside auth, where you buy rather than build, full stop.
Headcount replaced: a DevOps engineer, and the two months a payments integration used to cost.
The Seeing Layer: PostHog, Sentry, Playwright
This is the layer most solo founders skip, and it’s the one that saves you.
Sentry catches production errors with stack traces. When you’re one person, nobody else will notice the 2 AM exception. Sentry is your on-call rotation.
PostHog is product analytics — funnels, feature usage, session context. As an ops person I refuse to argue with my own opinions when I can look at what users actually did.
Playwright runs end-to-end tests in a real browser: create a booking, check in, post charges, record payment, check out. When AI writes a large share of your code, a machine that repeatedly walks the critical user journey is not optional. My hardest production incidents were all invisible to type checks and unit tests; a browser walking the flow is what catches them.
Headcount replaced: honestly, a QA engineer and half a data analyst. This layer is why a one-person company can behave like it has an on-call team.
The Build Layer: AI Coding Agents
This is the layer that changed the maths of solo founding.
I use Claude-based coding agents that run inside the repository. Not autocomplete, not a chat window I paste snippets into — agents that read the whole codebase, follow the project’s written rules, implement features, and run the tests. My job shifted from writing code to directing it: specifying behaviour precisely, reviewing like a sceptical tech lead, and testing like a user.
Two things I’ve learned matter more than model choice:
Written rules beat repeated instructions. My repo carries a rulebook compiled from real production incidents — never swallow a database error, financial operations must throw on failure, certain tables only get written through canonical helpers. Agents read it every session. Every incident becomes a rule; rules become lint checks, database triggers and tests. Three layers, because any single layer gets bypassed. The full system is in vibe coding in production: guardrails that actually work.
The agent that builds can’t grade its own work. I ended up building BeckyOS, a multi-agent coding OS (it’s on npm: npm i -g beckyos), with specialist agents — PM, architect, dev, QA, reviewers — and a separate verifier that grades claims as DONE versus merely audited. A single agent marking its own homework will tell you everything is fine. It is not always fine. That story is its own post: lessons from building a multi-agent AI coding system.
Headcount replaced: this is the big one — the equivalent of a small dev team’s output. I want to be careful with the claim: it replaces their output, not their judgment. The judgment still has to come from you, which is why domain expertise is now worth more than syntax.
The Private Layer: Local Models on My Own Machine
Cloud frontier models write my production code. But a second, quieter layer runs entirely on my MacBook Pro (M5 Max, 36 GB unified memory): local models via Ollama, a local TTS voice (Voxtral-4B) for a persistent assistant, even a fully offline AI vocal mastering chain for my music work.
The routing logic is simple. Cloud for capability, local for privacy, cost and iteration speed. Anything touching personal data, anything I’ll run ten thousand times, anything where a per-call fee changes how freely I experiment — that goes local, where the marginal cost is zero. I’m also experimenting with fine-tuning a small local model on my own writing.
A 2026 reality worth stating plainly: a well-specced laptop now runs models that would have been API-only two years ago. If you’re curious, I wrote a practical guide: running local LLMs on a MacBook.
What It Costs: Monthly Realism for Bootstrappers
The honest numbers, because stack posts always dodge them.
Near zero at the start. Supabase, Vercel, Clerk, PostHog and Sentry all have free tiers generous enough to build and launch on. I ran Dszape’s early months at effectively $0 in infrastructure. Stripe only costs when you earn (a percentage of transactions), which is the best kind of cost.
The real line item is AI. A serious coding-agent subscription is the biggest recurring spend in this stack — think in the range of a good SaaS tool per month at the entry tier, up to a few hundred dollars if you run agents as hard as I do. Price it against the alternative: it is doing work you would otherwise hire for, and even one junior developer in India costs more per month than the top AI tier costs per year.
Growth flips free tiers to paid tiers — Supabase and Vercel Pro land around $20-25 each, the observability tools similar — but by then you should have revenue, and the totals remain a rounding error against one salary.
Rules I follow as a bootstrapper: every dollar into the AI layer first, because it’s the multiplier. Watch usage-based line items (CI minutes, analytics events) monthly, because those are the ones that creep. And never add a paid tool to solve a problem a written process can solve — the ops-tools version of this stack has the same rule.
What I’d Cut First
In order, if I had to shrink the stack tomorrow:
- Nothing from the free tiers — there’s nothing to save.
- Paid analytics tiers. PostHog’s free tier covers a pre-scale product; opinions plus Sentry can carry you a while.
- Secondary AI subscriptions. Local models absorb a surprising amount of the routine load — drafting, summarising, classification — at zero marginal cost.
- Vercel Pro, by optimising build usage before upgrading.
What I would cut absolutely last: the primary coding agent and Sentry. One is the engine, the other is the smoke alarm. A solo founder without error monitoring isn’t brave, just uninformed.
What I’d never cut by substitution: Clerk and Stripe. Rolling your own auth or payments to save a subscription is how you convert a small monthly cost into a catastrophic one-time cost.
FAQ
What is the minimum viable version of this stack?
Next.js on Vercel, Supabase, Clerk, Stripe, Sentry’s free tier, and one AI coding agent. That’s a complete production loop — build, ship, get paid, see errors — for roughly the cost of the AI subscription alone.
Do I need the multi-agent setup, or is one AI assistant enough?
Start with one agent. The multi-agent structure earns its complexity only when the codebase grows past what you can personally re-verify — the point where you need a separate verifier because the building agent grading its own work stops being trustworthy.
Are local LLMs actually useful for a founder, or a hobby?
Both, honestly. They won’t write your production code as well as frontier models. But for private data, high-volume repetitive tasks, and free iteration, a 36 GB machine runs genuinely useful models at zero marginal cost.
Isn’t this stack risky vendor lock-in?
Mildly, and I accept it knowingly. Postgres is portable (Supabase is standard Postgres underneath), Next.js runs anywhere Node runs, and Stripe data exports. Clerk is the stickiest layer. For a solo founder, the speed you gain now outweighs a migration cost you may never pay — that’s a classic build-vs-buy call.
How much should a bootstrapper budget per month, all in?
Building pre-revenue: budget for the AI layer and little else — the infra free tiers hold. Post-launch with real traffic: roughly the AI spend plus $50-100 of paid tiers. If your stack costs more than a fraction of one salary, something is mispriced.
I write about building in public — the stack, the costs, and the incidents that shaped both. More about me and the work on the about page.