Whiteboard sketch — a coffee cup beside a $125 tech-bill receipt and six numbered sticky notes for the series parts

Two SaaS products. About 360 users. $125 a month in infrastructure — less than I spend on coffee.

Four business questions. Six pieces. One coffee budget.

I run two software products. Between them they serve about 360 users and generate real revenue every month. The total cost of the infrastructure that powers both of them, before I serve a single customer, is roughly $125 a month.

This series walks through the business reasoning behind every choice in the stack — the four questions I asked first, the services I deliberately refused to buy, and how Claude and Codex made the whole thing affordable for one operator.

  1. 01 My Tech Bill Is Smaller Than My Coffee Bill The four business questions I asked before picking any of the tech — and the receipts. 5 min read
  2. 02 Bubble Became a Ceiling, Not a Foundation Why I rebuilt two products off the platform that got them off the ground — the WU tax, the agentic velocity gap, and the AI window that changed the math. 5 min read
  3. 03 The $49 Stack: A Line-by-Line Walkthrough Where the money goes — and where I refused to spend it. The $49 customer-facing bill, the $76 backup engine, and $150/month of services I deliberately don’t subscribe to. 5 min read
  4. 04 I Want My Hosting Provider to Be Boring Why AWS — and only the boring parts of AWS. Hosting is a commodity. Credibility is a sales feature. The electricity-company test. 5 min read
  5. 05 Postgres Is the Stack How one database doing four jobs saved me from hiring three specialists. Supabase as the system of record, the queue, the lock service, and the analytics layer — for $25 a month. 6 min read
  6. 06 Serverless for the Bursty, Containers for the Steady Which jobs should I pay-per-use for, and which should I pay rent on? Lambda for backups, Fargate for the web app, Supabase as the join point. 5 min read

None of it is clever. All of it is the kind of reasoning a shopkeeper would recognise.

Start with Part 1 →