Self-hosting Supabase as an indie hacker sounds appealing—$25/month per project adds up quickly when you're building multiple products. But the decision isn't as simple as "free software vs. paid service." After talking with dozens of indie developers who've gone both routes, here's what actually matters.
If you're exploring self-hosted Supabase for the first time, this guide will help you understand whether it's the right choice for your situation and how to set it up for minimal maintenance.
When Self-Hosting Makes Sense for Indie Hackers
Let's be honest: for most indie hackers in their first year, Supabase Cloud at $25/month is the right choice. You're trading money for time, and early-stage products need iteration speed more than infrastructure savings.
But self-hosting becomes compelling in specific scenarios:
You're running multiple projects. At 3+ projects, you're paying $75+/month for Supabase Cloud. A single $30-50/month VPS can host all of them with room to spare.
You've hit resource limits. Database connections, storage, and egress can spike unexpectedly. Self-hosting gives you predictable costs as you scale.
You need data sovereignty. European customers increasingly want data stored in specific regions. Self-hosting lets you choose your data location.
You already have infrastructure. If you're running a VPS for other services, adding Supabase is incremental cost, not a new expense.
The Real Cost Breakdown
Here's what self-hosting actually costs for a typical indie hacker setup:
| Item | Monthly Cost | Notes |
|---|---|---|
| VPS (4GB RAM) | $24-48 | Hetzner, DigitalOcean, Vultr |
| S3-compatible storage | $0-10 | Cloudflare R2 free tier covers most needs |
| Domain + SSL | $0-1 | Let's Encrypt is free |
| Backup storage | $0-5 | Depends on database size |
| Total | $24-64 | For unlimited projects |
Compare this to Supabase Cloud Pro: $25/month per project, plus usage-based charges for egress, storage, and functions. A single project might cost $25-50/month. Three projects could run $75-150/month.
The true cost comparison gets more nuanced when you factor in your time. Self-hosting requires:
- Initial setup: 4-8 hours (one-time)
- Monthly maintenance: 1-2 hours for updates and monitoring
- Incident response: 0-4 hours when things break
At $50/hour billing rate, that's roughly $600-1,200 in opportunity cost for the first year. If you're making $10k/month from your products, this math works. If you're pre-revenue, it probably doesn't.
The Minimal Indie Hacker Setup
If you've decided self-hosting makes sense, here's how to set it up with minimal ongoing maintenance.
Choosing the Right VPS
For a single indie hacker running 1-3 projects, you don't need much:
- 4GB RAM minimum (Supabase runs ~12 containers)
- 2 vCPUs (more helps during traffic spikes)
- 60GB+ SSD (databases grow faster than you expect)
Based on the best VPS providers for Supabase, Hetzner offers the best value at ~$6-12/month for these specs. DigitalOcean and Vultr cost more but have better network reliability.
Reducing Resource Usage
The default Supabase stack includes services you might not need. You can disable unused services to free up RAM and reduce attack surface:
Services to consider disabling:
- Logflare: Only needed if you want centralized analytics logs
- imgproxy: Only needed if you're serving transformed images
- Edge Runtime: Only needed if you use Edge Functions
The selective service deployment guide covers this in detail, but the basic approach is removing unused services from your docker-compose.yml.
For a typical SaaS application, you need:
- PostgreSQL (obviously)
- PostgREST (API layer)
- GoTrue (authentication)
- Supabase Studio (admin dashboard)
- Kong (API gateway)
- Realtime (if you use subscriptions)
- Storage (if you handle file uploads)
One-Command Setup with Supascale
Setting up Supabase manually involves configuring 15+ environment variables, managing Docker networks, setting up SSL certificates, and configuring OAuth providers. It's doable, but error-prone.
Supascale streamlines this entire process with a one-time purchase ($39.99) that handles:
- Automated deployment with proper production defaults
- SSL certificates via Let's Encrypt with automatic renewal
- Backup configuration to S3-compatible storage
- OAuth provider setup through a visual interface
- Update management when new Supabase versions release
For indie hackers who want self-hosting benefits without becoming DevOps engineers, this is the sweet spot. The documentation at getting started guide walks through the complete setup.
Backup Strategy for Indie Hackers
Here's the reality: most indie hackers don't have great backup strategies. They either:
- Don't back up at all (dangerous)
- Rely on VPS provider snapshots (expensive, incomplete)
- Set up pg_dump once and forget about it (unreliable)
A proper backup strategy doesn't need to be complex. The complete backup guide covers this in depth, but here's the indie hacker version:
Minimum Viable Backup
- Database backups: Daily pg_dump to S3-compatible storage (Cloudflare R2 is free)
- Storage backups: If you use Supabase Storage, sync to a separate S3 bucket
- Configuration backup: Version control your docker-compose.yml and .env files
- Test restores: Actually try restoring once a month
The automated S3 backup setup through Supascale handles the first two automatically. Point it at R2, Backblaze B2, or any S3-compatible provider and forget about it.
What About Storage?
This catches many indie hackers off guard: your database backup doesn't include uploaded files. If users upload avatars, documents, or images, those live in Supabase Storage—a separate system entirely.
For most indie projects, the simple solution is configuring Storage to use an external S3 bucket (MinIO, R2, Backblaze B2) rather than local filesystem storage. Then your files are automatically durable and easy to back up.
Maintenance Routines That Don't Suck
The goal is maintenance that takes minutes, not hours. Here's a sustainable routine:
Weekly (5 minutes)
- Check that backups ran successfully
- Glance at disk usage (databases grow)
- Verify your app still works
Monthly (30 minutes)
- Review Docker container logs for warnings
- Check for Supabase version updates
- Test a backup restore on a separate server
Quarterly (2 hours)
- Update Supabase to the latest version
- Review and rotate API keys if needed
- Audit which projects are still needed
For monitoring without complexity, a simple uptime monitor (Uptime Robot free tier) plus email alerts for container crashes covers 90% of issues.
When to Migrate Back to Cloud
Self-hosting isn't permanent. There are good reasons to migrate back to Supabase Cloud:
You're hiring. Every new developer needs to understand your infrastructure. Managed services reduce onboarding time.
You're burning out. If maintenance feels like a chore, you'll start cutting corners. That's when data loss happens.
Your time value increased. Success changes the math. When you're making $50k/month, paying $200/month for managed services is obviously correct.
You need features. Some Supabase features (branching, advanced metrics, managed PITR) are cloud-only. If you need them, you need cloud.
The migration guide from self-hosted back to cloud works in reverse. pg_dump your database, import to Supabase Cloud, update your connection strings.
Real Talk: The Downsides
Being honest about tradeoffs matters more than cheerleading:
You're on call. When your database goes down at 2 AM, there's no support ticket to file. It's your problem.
Updates are manual. Supabase releases security patches regularly. You have to actually apply them. The upgrade guide helps, but it's still work.
Feature lag. Self-hosted Supabase trails the cloud version. New features land on cloud first, sometimes by months.
No partial failures. On Supabase Cloud, if Auth has issues, Database usually keeps working. Self-hosted runs everything on one server—a disk failure takes down everything.
Making the Decision
Here's a simple framework:
Choose Supabase Cloud if:
- You're pre-revenue or early revenue (<$3k/month)
- You value iteration speed over cost savings
- You're a solo developer without ops experience
- You only need 1-2 projects
Choose self-hosting if:
- You're running 3+ projects
- You have specific data residency requirements
- You're already comfortable with Linux/Docker
- You're spending $100+/month on Supabase Cloud
Choose Supascale for self-hosting if:
- You want self-hosting benefits without the ops overhead
- You need reliable backups without building custom scripts
- You want a visual interface for OAuth and domain configuration
- You value one-time pricing over recurring costs
Getting Started
If self-hosting is right for you, here's the recommended path:
- Start with one project. Don't migrate everything at once.
- Use a managed tool. Supascale's installation guide gets you running in under an hour.
- Set up backups immediately. Before you add any real data.
- Keep cloud as fallback. Don't delete your Supabase Cloud project until you're confident in self-hosted.
For more details on the complete setup process, the deployment guide covers everything from VPS provisioning to production hardening.
