Free Tiers & Managed Services
You can run a production-ready startup on under $50 per month. Not a toy. Not a demo. A real product serving real customers and processing real payments. The cloud providers and SaaS companies have made it possible to build infrastructure that would have cost thousands per month a decade ago for nearly nothing today. The catch is knowing which services to use and which to avoid.
The rule is simple: do not run what you can rent. Every service you self-host is a service you maintain, monitor, patch, back up, and debug at 3am. Let someone else do that. Your job is to build the product.
A Production Stack for Under $50/Month
Service | Provider | Cost
-------------------------|-----------------------|------------------
Frontend hosting | Cloudflare Pages | Free
| or Vercel | Free (hobby)
Backend hosting | Railway | $5/month
| or Fly.io | $5-10/month
| or a VPS (Hetzner) | $4-5/month
Database | Neon (managed Postgres)| Free tier (0.5GB)
| or Supabase | Free tier (500MB)
| or Turso (SQLite) | Free tier
Authentication | Clerk | Free (up to 10K MAU)
| or Supabase Auth | Free
| or Auth.js (self-run) | Free
Payments | Stripe | Per-transaction only
Email sending | Resend | Free (100/day)
| or Postmark | Free (100/month)
File storage | Cloudflare R2 | Free (10GB)
| or S3 | ~$0.50/month
Error tracking | Sentry | Free (5K events/month)
Uptime monitoring | UptimeRobot | Free (50 monitors)
DNS & CDN | Cloudflare | Free
CI/CD | GitHub Actions | Free (2,000 min/month)
-------------------------|-----------------------|------------------
Total | | $5-15/month
This is not a theoretical exercise. Thousands of indie hackers and small startups run exactly this kind of stack. Pieter Levels runs multiple profitable SaaS products on a single VPS. Many Y Combinator startups launched their MVPs on infrastructure that cost less than a Netflix subscription.
Why Managed Services Win at Early Stage
Self-hosting Postgres:
- Provision a server ($5-20/month)
- Install and configure Postgres
- Set up automated backups
- Configure monitoring and alerting
- Apply security patches
- Handle connection pooling
- Plan for failover
- Wake up at 3am when disk fills up
Total time investment: 2-3 days initially, 2-4 hours/month ongoing
Managed Postgres (Neon, Supabase, Railway):
- Click "create database"
- Copy the connection string
- Backups are automatic
- Monitoring is built in
- Patches are handled
- Scaling is one click
Total time investment: 10 minutes initially, 0 hours/month ongoing
The math is obvious. Your time is worth far more than the difference in cost. A managed Postgres instance at 5/month but requires hours of your attention each month is not even close.
The Free Tier Landscape in 2026
Free tiers change frequently. Here is what is generally available and reliable:
Hosting
Cloudflare Pages:
- Static sites and serverless functions
- Unlimited bandwidth
- 500 builds/month
- Excellent for: Frontend SPAs, static sites, Jamstack
- Not suitable for: Long-running processes, WebSockets
Vercel:
- Next.js and other frameworks
- 100GB bandwidth/month
- Serverless functions with 10-second timeout
- Excellent for: Full-stack Next.js apps
- Hobby plan limitation: no commercial use (technically)
Fly.io:
- 3 shared VMs, 256MB RAM each
- 160GB outbound bandwidth
- Excellent for: Small backend services, APIs
- Catch: Resource-limited, need to upgrade quickly
Railway:
- $5/month credit on starter plan
- Excellent for: Quick deploys from GitHub, managed everything
Databases
Neon (Postgres):
- Free tier: 0.5GB storage, autoscaling to zero
- Branching for development environments
- Excellent for: Most startup workloads up to moderate scale
Supabase (Postgres + Auth + Storage):
- Free tier: 500MB database, 1GB file storage, 50K MAU auth
- Real-time subscriptions included
- Catch: 2 free projects, paused after 1 week inactivity
PlanetScale (MySQL):
- Free tier was removed, but hobby plan is affordable
- Branch-based schema changes
Turso (SQLite):
- Free tier: 9GB storage, 500 databases
- Edge-replicated SQLite
- Excellent for: Read-heavy workloads, per-user databases
Redis/Valkey:
- Upstash: Free tier, 10K commands/day
- Good enough for: Session storage, rate limiting, simple caching
Authentication
Clerk:
- Free: up to 10,000 monthly active users
- Includes: Email/password, OAuth, MFA, user management UI
- Excellent for: Quick auth setup with good UX
Supabase Auth:
- Free: 50,000 MAU
- Includes: Email, OAuth, phone auth, magic links
- Best if you are already using Supabase for database
Auth.js (formerly NextAuth):
- Free forever (self-hosted library)
- You manage the session storage
- Best if you want full control and minimal dependencies
Firebase Auth:
- Free: 10,000 verifications/month for phone, unlimited for email
- Watch out: vendor lock-in to Google ecosystem
Everything Else
Payments:
Stripe — no monthly fee, 2.9% + $0.30 per transaction
No viable free alternative. Stripe is worth the transaction fees.
Email:
Resend — 100 emails/day free, then $20/month for 50K
Postmark — 100 emails/month free
SendGrid — 100 emails/day free
File storage:
Cloudflare R2 — 10GB free, no egress fees (this is the big deal)
S3 — effectively free at small scale, but watch egress costs
Error tracking:
Sentry — 5,000 events/month free
Enough for early stage. You will exceed this quickly.
Analytics:
PostHog — 1M events/month free (generous)
Plausible — $9/month (privacy-focused, simple)
Umami — free, self-hosted
Search:
Meilisearch Cloud — free tier available
Algolia — 10K search requests/month free
Don't Run Your Own Database Cluster at Seed Stage
This point deserves its own section because it is the most common mistake.
Arguments for self-hosting the database:
"It's cheaper" — No. Your time is not free.
"I want full control" — Over what? Backup schedules? Replication?
You have a product to build.
"Managed services are slower" — They are not, for your scale.
"I don't want vendor lock-in" — Postgres is Postgres. Moving
between managed providers is a connection string change.
Arguments for managed database:
- Automatic backups (tested and verified)
- Point-in-time recovery
- Security patches applied without your involvement
- Monitoring and alerting out of the box
- Connection pooling handled
- Someone else's pager goes off at 3am
The only valid reason to self-host a database at seed stage is if your product IS a database or data infrastructure product. If you are building a project management tool, use Neon. If you are building a database tool, self-host whatever you need.
Choosing Between Providers
Decision framework:
1. Does a free tier exist that covers your needs? Use it.
2. Is the free tier from a provider you already use? Use that one
(fewer accounts, fewer billing relationships).
3. Will you outgrow the free tier in less than 3 months?
Start on the paid tier to avoid a migration during growth.
4. Is the provider likely to be around in 2 years?
Avoid brand-new startups for critical infrastructure.
5. How painful is migration if you need to leave?
Prefer standard APIs (S3-compatible, Postgres-compatible).
Scaling Beyond Free Tiers
Free tiers are designed to get you started, not to run your company forever. Know when you will outgrow them:
Common free tier limits and when you hit them:
Neon 0.5GB: ~50K-100K rows depending on schema width
Supabase 500MB: Similar to Neon
Vercel free: When you need more than 10-second function execution
Sentry 5K/month: When you have >500 daily active users (roughly)
Clerk 10K MAU: When you have 10K monthly users (obviously)
When you hit a limit:
- Upgrade to the paid tier. Do not engineer around free tier limits.
- The paid tiers are usually $10-25/month. This is nothing compared
to the engineering time you would spend working around limits.
Common Pitfalls
- Optimizing for free instead of fast. If a free service takes an extra day to set up compared to a 10.
- Using too many providers. Each provider is a login, a billing relationship, a set of docs to learn, and a potential point of failure. Consolidate where possible. Supabase gives you database + auth + storage in one place.
- Ignoring egress costs. AWS and GCP charge for outbound data transfer. Cloudflare R2 does not. At small scale this does not matter. At moderate scale it can be the largest line item on your cloud bill.
- Building on unstable free tiers. Some startups offer generous free tiers to acquire users, then remove them. Heroku's free tier removal in 2022 is the canonical example. Prefer providers with a business model that supports free tiers long-term (Cloudflare, Vercel, Supabase).
- Rolling your own auth. Authentication is the most commonly self-built service that should never be self-built. Password hashing, session management, OAuth flows, MFA, account recovery — every one of these has security implications. Use a service.
- Ignoring the migration path. When you choose a provider, ask: "How do I leave?" If the answer involves proprietary formats or APIs that do not map to standard alternatives, reconsider.
Key Takeaways
- A production-ready stack costs $5-15/month using free tiers and cheap managed services. There is no financial reason to self-host anything at seed stage.
- Do not run your own database, authentication, email delivery, or file storage. Let someone else handle ops, backups, and security patches. Your job is building the product.
- Prefer providers with standard interfaces (Postgres-compatible databases, S3-compatible storage) to minimize lock-in.
- Know your free tier limits and upgrade to paid tiers when you hit them. Engineering around free tier limitations is more expensive than paying $10/month.
- Consolidate providers where possible. Fewer accounts, fewer billing relationships, fewer things to monitor.