The Old Stack: $312/Month That Was Quietly Killing Me

I didn't realize how much I was spending until I did an honest audit. Here's the full list — every subscription, every charge, adding up to a number that made me actually feel sick:

ToolPurposeMonthly Cost
ZapierAutomation workflows$49.00
ConvertKitEmail marketing$79.00
AWS EC2 + S3Hosting + storage$87.00
Vercel ProFrontend deployment$20.00
AirtableDatabase / CRM$24.00
Notion TeamDocs + knowledge base$16.00
Loom BusinessScreen recording$12.50
CalendlyScheduling$12.00
TypeformForms$12.50
Total$312.00/month
$3,744 Per year. Spent on tools I didn't need. That's $3,744 that wasn't going into product development, marketing, or my pocket.

The painful part: most of these tools weren't doing anything I couldn't replicate with 50 lines of code and a free tier API. I was paying for UX convenience, not actual capability. Once I understood that, the migration became obvious.

The Replacements: Tool-by-Tool

Zapier ($49/mo) Cloudflare Workers + Cron Now: $0.00

Zapier is JavaScript hidden behind a GUI. Every "Zap" is just: trigger → transform data → call API. Cloudflare Workers does this natively, with more control and zero cost.

I moved 12 Zapier workflows to Workers Cron jobs. The most complex one — pulling new orders from Supabase, generating a PDF receipt, storing it in R2, and emailing it to the customer — took 3 hours to migrate and 87 lines of code. It runs more reliably, with better error handling, and I can read the actual code when something breaks.

ConvertKit ($79/mo) Supabase + Workers + AWS SES Now: ~$1.50/mo

ConvertKit is a database (subscribers), a scheduler (sequences), and an API sender (email delivery). I replaced each component with a cheaper equivalent:

  • Subscribers: Supabase table — free
  • Sequence logic: Cloudflare Worker with KV state — free
  • Email delivery: AWS SES at $0.10/1,000 emails (vs ConvertKit's $79 flat rate)

My email volume is roughly 8,000 emails/month. On SES: $0.80/month. On ConvertKit: $79/month. The migration took a weekend and saved me $77.20 every month after that.

AWS EC2 + S3 ($87/mo) Cloudflare Workers + R2 + Pages Now: $0.55/mo

I was running a t3.small EC2 instance ($16.82/month) as an API server, paying for data transfer ($12/month), and using S3 for storage ($8/month for storage + $51 in egress). The entire thing was overengineered for my actual workload.

Workers replaced the EC2 API server entirely. R2 replaced S3 — with zero egress fees, the storage math alone saved me $51/month. Pages replaced my Vercel deployment. Total infra cost: $0.55/month for R2 storage on the non-free tier.

Vercel Pro ($20/mo) Cloudflare Pages Now: $0.00

Cloudflare Pages free tier is strictly better than Vercel Pro for static sites and Jamstack deployments: unlimited builds, unlimited bandwidth, custom domains, edge caching across 300+ locations. The only thing Vercel does better is Next.js Server Components — if you're not using SvelteKit or Next SSR, Pages wins every time.

I deploy vanilla HTML/CSS/JS (no SvelteKit, by design). Pages deploys in 12 seconds via git push. Zero cost. Zero configuration drift.

Airtable ($24/mo) Supabase Free Tier Now: $0.00

Airtable is a pretty UI on top of a database. For a developer, the UI isn't the value — the data and the API are. Supabase gives you real PostgreSQL, a REST API, a decent UI, and 500MB storage for free. That's more than enough for a 5-product business.

The migration: exported Airtable data as CSV, imported into Supabase, updated my Workers to use the Supabase REST API instead of Airtable's API. Took 2 hours. Saved $288/year.

Notion Team ($16/mo) Notion Personal (free) + Cloudflare KV Now: $0.00

I was using Notion Team for two things: personal knowledge management and as a pseudo-CMS for my site's FAQ and product descriptions. I downgraded to Notion Personal (free, unlimited pages) and moved the programmatic data into Cloudflare KV. KV is a key-value store with a REST API — perfect for structured content that needs to be read fast from Workers.

Loom Business ($12.50/mo) Loom Starter (free) + R2 Now: $0.00

The Loom free tier gives you 25 videos at 5 minutes each. For product demos, that's plenty. For long-form tutorials, I record locally with OBS (free) and store the video in R2 at $0.015/GB. No subscription, and my files don't disappear if I cancel.

Calendly ($12/mo) Cal.com Free Now: $0.00

Cal.com is open-source Calendly with a generous free tier. Same Google Calendar integration, same embeddable widget, same email confirmations. I switched in 20 minutes and have never noticed a difference.

Typeform ($12.50/mo) Custom HTML form + Workers Now: $0.00

A Typeform is just an HTML form that POSTs to a database. I built my own with ~30 lines of vanilla JS and a Worker that writes submissions to Supabase. Took 45 minutes. Eliminated $150/year.

The New Stack: $6.83/Month Total

ToolReplacesMonthly Cost
Cloudflare WorkersZapier + EC2 + Vercel$0.00
Cloudflare PagesVercel Pro$0.00
Cloudflare R2S3 + Loom storage$0.55
Cloudflare KVPart of Airtable + Notion$0.00
Supabase FreeAirtable + part of ConvertKit$0.00
AWS SESConvertKit$0.80
Cal.com FreeCalendly$0.00
Claude Haiku APIVarious AI workflows$4.28
Notion PersonalNotion Team$0.00
Total$5.63 – $6.83

The Migration Mindset: Why Most People Don't Do This

I talk to a lot of solopreneurs who know they're overpaying for SaaS. The reason they don't migrate isn't technical — it's cognitive. There are three mental blockers:

1. "Migration takes too long." The actual migration time for my entire $312/month stack was 3 weekends. That's maybe 24 hours of work. At $305.17 in monthly savings, the ROI was 100% in week 5 of the first month post-migration. Every subsequent month is pure savings — now approaching $4,200 saved over the past 14 months.

2. "Free tiers have hidden costs." The Cloudflare free tier is genuinely free, not "free until you need it to actually work." The limits are designed for developer workloads, not as a marketing trick. I've never hit a limit on Workers, KV, or Pages. R2 is the only one where I pay, and $0.55 is not a hidden cost.

3. "I'll lose features." In every case, I gained features. My custom Typeform can collect any data format. My Workers email system has custom retry logic and better deliverability than ConvertKit's shared IP pool. My R2 setup has no file size limits. Control beats convenience for technical founders.

What to Migrate First

If you're starting from scratch, here's the priority order based on ROI:

  1. Hosting (highest ROI) — Migrate from Vercel/Netlify paid to Cloudflare Pages. 20 minutes, saves $20+/month immediately.
  2. Storage — Replace S3 with R2. One config change. Saves egress fees immediately.
  3. Automation — Replace your top 3 Zapier workflows with Workers. Takes a weekend but eliminates $49+/month.
  4. Database — Move from Airtable to Supabase. CSV export → import is straightforward.
  5. Email — Most complex but highest dollar savings. Budget a full weekend.

Get the Migration Templates

The Zero-Cost AI Kit includes the Worker templates, Supabase schemas, email sequence logic, and migration checklists I used to replace my $312/month SaaS stack. Skip the trial and error — get the production code that's already running.

Get the Zero-Cost AI Kit — $47

Frequently Asked Questions

What can replace Zapier for free?
Cloudflare Workers with Cron Triggers replaces most Zapier workflows for free. Workers Cron runs on any schedule, can call external APIs, write to databases, and trigger emails. For webhook-based triggers, Workers handle incoming webhooks natively. The free tier includes 100,000 requests/day and unlimited cron triggers.
What is a free alternative to Notion for storing structured data?
For structured data accessed programmatically, Cloudflare KV replaces Notion databases for free. For relational data with complex queries, Supabase free tier provides full PostgreSQL with 500MB storage. Both have REST APIs that integrate directly into any application without extra tooling.
How do I replace ConvertKit with a free email solution?
The free stack: Cloudflare Email Routing for incoming email (free), Supabase for subscriber list (free), Cloudflare Workers for sequence logic (free), and AWS SES for delivery ($0.10/1,000 emails — free for under 3,000/month from EC2, else very cheap). Setup takes one full weekend. The result is more control and better deliverability.

Related Reading

Building a $7/Month AI Business: Complete Infrastructure Guide The complete cost breakdown of the stack these free tier tools power — $6.83/month for 9 Workers. Cloudflare R2 vs S3: Cost Comparison for AI Projects Deep dive into the S3 → R2 migration — 84% cost reduction with zero egress fees. Cloudflare Workers for AI: Tutorial + Production Setup The tutorial for deploying Workers — the free compute layer that replaces Zapier, EC2, and Vercel.