You can run a real, production SaaS product for about $12 a year. Not a toy, not a landing page — a working app with a database, authentication, background jobs, AI, and transactional email. The only line item is a domain name. Everything else has a free tier generous enough to carry you from zero to your first few hundred users. This is not theoretical. It is the stack vernettic itself runs on, and it is the same shape most modern indie products use in 2026. Here is each layer and where the free tier actually ends.
hosting and frontend: vercel
Vercel's Hobby tier gives you 100GB of bandwidth a month, automatic deploys from git, and edge functions. For a pre-revenue product that is far more than you will use. The one real limit is cron: Hobby allows a single scheduled job. The trick is to not waste it on scheduling (more on that below). Upgrade trigger: around 80GB/month of bandwidth.database and auth: supabase
Supabase gives you a full PostgreSQL database, authentication, row-level security, and storage on its free tier — 500MB of database to start. Postgres means you are on real SQL with real constraints, not a proprietary document store you will fight later. Row-level security lets you enforce that users only ever see their own rows, at the database level. Upgrade trigger: around 400MB used.cron: supabase pg_cron, not vercel
This is the move that keeps you free. Instead of burning Vercel's single cron slot, usepg_cron inside Supabase. It runs unlimited scheduled jobs directly in Postgres, for free, on every tier. Digest sends, cleanup jobs, daily scans — all of it. Vercel's one cron slot becomes a simple health-check watchdog. Unlimited scheduling at zero cost.
ai: groq over the expensive options
For generating text — social posts, summaries, drafts — Groq's free tier runs open models like Llama 3 fast enough for production and covers roughly 14,400 requests a day at no cost. For a solo founder that is hundreds of active users before you pay anything, and the API is OpenAI-compatible so you can swap models without rewriting your code. See groq vs the big providers for where this fits in a real workflow.email: resend
Resend handles transactional and digest email with a free tier of 3,000 emails a month (100/day). Clean API, good deliverability, and it does not make you mortgage your weekend to a legacy ESP. Upgrade trigger: around 2,500/month.payments: stripe
Stripe costs nothing until you actually charge someone — you only pay per-transaction fees. So it sits in your stack at $0 until the moment it is making you money, which is exactly when you want a cost to appear.quick summary
- Hosting: Vercel Hobby — 100GB/mo bandwidth, free.
- Database + auth: Supabase — 500MB Postgres with row-level security, free.
- Cron: Supabase pg_cron — unlimited jobs, free (do not waste Vercel's one slot).
- AI: Groq — ~14,400 requests/day, free, OpenAI-compatible.
- Email: Resend — 3,000/mo, free.
- Payments: Stripe — $0 until you charge; per-transaction after.
- Total fixed cost until revenue: ~$12/year for a domain.