The $0 Startup Stack: How I Replaced My $300/mo SaaS Bill
(The Premise) Why This Exists I was paying $312/mo for "startup tools" before I had $1k MRR. That's clown behavior.
Supabase $25. Sanity $99. Zapier $29. Linear $8. Vercel Pro $20. Misc $131.
I deleted all of them. Revenue went up. Speed went up. Stress went down.
This is the exact stack I use to run ScaleSmart at $0 infra cost.
The Core Idea
Subscriptions are technical debt you pay monthly.
If a free tool does 80% + a 30-line script does the last 20%, you don't need the SaaS.
Systems > Subscriptions.
The $0 Stack Breakdown
1. Database: Google Sheets over Supabase
Cost: $0 vs $25/mo
Why: Client already has Workspace. Sheets IS the admin UI. No dashboard to build.
Trade-off: No real-time. Don't care. Forms are async.
When to upgrade: >50k rows/mo or $10k MRR per client
Apps Script webhook in 6 lines:
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow([new Date(), e.parameter.name, e.parameter.email]);
return ContentService.createTextOutput('success');
}
2. CMS: MDX + constants over Sanity
Cost: $0 vs $99/mo
Why: git push = deployed. marketing.ts = type-safe. AI can read the whole site in one prompt.
Trade-off: Non-devs can't edit. Feature, not bug. Code-checker protects it.
File: /src/constants/marketing.ts runs your homepage.
3. Automation: Apps Script over Zapier
Cost: $0 vs $29/mo
Why: Unlimited executions. Runs where your data lives. No "task" limits.
Example: Form → Sheet → Auto-email → Slack → Done. 0 tasks used because it's not Zapier.
4. Project Mgmt: DECISIONS.md over Linear
Cost: $0 vs $8/seat/mo
Why: DECISIONS.md is your PM. No tickets. No status updates. If it's not in code-checker, it doesn't exist.
Rule: We don't track tasks. We ship systems that prevent tasks.
5. QA: code-checker.mjs over Manual Review
Cost: $0 vs Senior dev hours
Why: npm run check = 30s. Human review = 30min + context switching.
Result: AI fixes its own bugs via PRG loop. See Code-Checker SOP.
The Real Cost of "Free"
You pay in discipline, not dollars.
- You must document decisions →
DECISIONS.md - You must automate checks →
code-checker.mjs - You must accept trade-offs → No real-time, no visual CMS
If you can't do those 3, keep paying the SaaS tax.
Outcome of This Stack
Since switching:
- Infra cost: $312/mo → $0
- Ship speed: 2 weeks → 2 days for new features
- AI accuracy: Up 60% because entire site fits in context
- Cognitive load: Down. No 15 dashboards to check.
Steal This: DECISIONS.md Template
I made my entire architecture decision log public. Copy it.
# DECISIONS.md | ScaleSmart Architecture Log
> **Purpose:** This doc prevents re-litigating solved problems.
> **Audience:** AI devs, future me, and anyone who asks "why not X?"
> **Rule:** If it's not in here, it wasn't important enough to decide.
---
## Core Philosophy
**Build the system that prevents the problem. Eliminate recurring costs.**
We optimize for:
1. **$0 infra** until revenue demands scale
2. **AI-readable code** over "enterprise patterns"
3. **Speed of iteration** over theoretical purity
---
## ADR-001: Google Sheets + Apps Script over Supabase/Postgres
**Date:** 2026-05-20
**Status:** Accepted
**Context:**
Needed a data layer for intake forms, lead tracking, and lightweight CRM. Tried Supabase, Firebase, Airtable.
**Decision:**
Use Google Sheets as database + Apps Script as backend/webhooks.
**Rationale:**
1. **Cost:** $0 vs $25-99/mo. Client already has Google Workspace.
2. **Visibility:** PM/clients can edit data without a dashboard build. Sheets IS the UI.
3. **Integration:** Native with Forms, Gmail, Drive. No Zapier tax.
4. **AI-friendly:** Claude/GPT can read/write CSV. Easier context than SQL for AI devs.
5. **Speed:** Webhook deployed in 3 minutes vs schema migrations + RLS policies.
**Trade-offs Accepted:**
- No real-time subscriptions → We don't need them. Form submits are async.
- 10M cell limit → We archive monthly. If we hit this, we have revenue to migrate.
- No row-level security → Data is client-scoped per Sheet. Good enough for MVP.
**When to revisit:** Monthly revenue > $10k MRR from a single client, or >50k rows/mo.
---
## ADR-002: MDX + /constants over Headless CMS
**Date:** 2026-05-20
**Status:** Accepted
**Context:**
Needed CMS for blogs, case studies, and landing page copy. Tried Sanity, Contentful, WordPress.
**Decision:**
Use MDX files in `/content` + TypeScript constants in `/src/constants`.
**Rationale:**
1. **Cost:** $0 vs $99/mo + per-seat pricing.
2. **Version control:** All content in git. Rollbacks, branches, diffs.
3. **AI context:** Antigravity can read entire `marketing.ts` in one prompt. CMS needs API calls.
4. **Type safety:** `as const` prevents typos. CMS gives you `any`.
5. **Deploy speed:** `git push` = deployed. No webhook/build delays.
**Trade-offs Accepted:**
- Non-devs can't edit → That's a feature. Marketing edits `marketing.ts` via PR. Code-checker protects it.
- No visual editor → MDX preview in VSCode + localhost. Good enough.
**When to revisit:** Hiring dedicated content team of 3+ non-devs.
---
## ADR-003: Code-Checker SOP over Manual Review
**Date:** 2026-05-20
**Status:** Accepted
**Context:**
AI devs ship bugs. Manual review doesn't scale. See `/content/blog/code-checker-sop.mdx`.
**Decision:**
All merges blocked unless `npm run check` passes. Code-checker generates fix prompts.
**Rationale:**
1. **Verification cost → $0:** Automation vs senior dev hours.
2. **Consistency:** Rules don't have bad days.
3. **Self-healing:** AI fixes its own output via PRG loop.
**Trade-offs Accepted:**
- Slower first commit → Faster total time-to-prod.
- Can't "just ship it" → That's the point.
---
## ADR-004: Next.js 16 + React 19 over Remix/SvelteKit
**Date:** 2026-05-20
**Status:** Accepted
**Decision:**
Stick with Next.js App Router.
**Rationale:**
1. **Hiring:** Every AI + dev knows it.
2. **Ecosystem:** Shadcn/UI, Vercel, RSC patterns = velocity.
3. **MDX:** First-class support for content layer.
**Trade-offs Accepted:**
- Vercel hosting cost → Hobby tier free. If we scale, we can self-host or have revenue.
---
## Template for New Decisions
```md
## ADR-XXX: [Title]
**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Deprecated
**Context:**
What problem forced this decision?
**Decision:**
What are we doing?
**Rationale:**
1. Why this vs alternatives?
2. Key benefits
**Trade-offs Accepted:**
- What are we giving up?
**When to revisit:**
Trigger condition for re-evaluating
```
Final Thought
Most founders optimize for "best tool."
ScaleSmart optimizes for "fewest tools."
Every subscription you add is a tax on speed.
Delete them. Build systems. Ship faster.
Want me to implement this for your Amazon biz?
We productized this for ecom operators. Book a strategy call
