All posts
    Guidesself hosted supabase vs managed

    Self Hosted Supabase vs Managed: The Real Cost & Control Tradeoff (2026)

    Self hosted Supabase vs managed, compared on real cost, ops burden, data control, and scaling. Learn the exact point where self-hosting actually wins.

    October 11, 202612 min readCarbonApps Team

    Most comparisons frame this as cheap DIY versus expensive convenience. That's backwards. Managed Supabase is usually the cheaper option until a specific, identifiable threshold, and the real reason to self-host has almost nothing to do with saving money.

    What You're Actually Choosing Between

    Before comparing cost or control, it helps to be precise about what each option actually is. "Supabase" isn't a single product with two delivery modes. It's an orchestrated stack of open-source services, and the question is who runs that stack.

    Managed Supabase: the hosted platform in plain terms

    Managed Supabase is the hosted version at supabase.com, where the company runs the infrastructure, handles upgrades, and gives you a dashboard, API keys, and a project URL. You click a button, get a Postgres database with auth, storage, and realtime subscriptions wired up, and ship.

    Self-hosted Supabase: the Docker Compose stack you run yourself

    Self-hosted Supabase means you pull the official self-hosting guide and the Docker Compose reference and run every container yourself, typically on a VPS you provision and patch.

    The 11 services under the hood (Postgres, GoTrue, PostgREST, Realtime, Storage, Kong, Studio)

    The self-hosting docs are explicit that the stack bundles Postgres, the Kong API gateway, GoTrue for auth, PostgREST for the REST layer, Realtime, Storage, and Studio as separate containers, plus supporting services for image rendering, logging, and queueing. When you self-host, you are the one keeping all of those processes alive, not just a database.

    The Cost Comparison Nobody Does Honestly

    Most self-hosting pitches compare a $25 Pro plan against a $5 VPS and call it a win. That comparison is incomplete, and it's the single biggest reason people get surprised later.

    Managed pricing tiers: Free, Pro ($25/mo), Team, Enterprise

    The Supabase pricing page lists a Free tier for prototypes, a Pro tier starting at $25 a month with higher limits and daily backups, a Team tier for organizations needing SOC 2 and role-based access, and custom Enterprise pricing for larger compliance and support needs.

    Self-hosted true cost: VPS + your time + egress + backups

    The VPS itself is the smallest line item. A box from Hetzner Cloud or an AWS EC2 instance sized to run all 11 services comfortably runs more than the cheapest listed tier once you account for redundancy, not the $5 to $10 entry boxes people quote. Then add your own time for patching, monitoring, and incident response, which is the cost most comparisons quietly drop.

    The hidden line items: compute add-ons, bandwidth overage, point-in-time recovery

    On managed, compute add-ons, bandwidth overage past the included allowance, and point-in-time recovery are billed extras that can push a "cheap" project well past $25 a month. On self-hosted, the equivalent costs show up as a bigger VPS, egress from your cloud provider, and the engineering hours to build your own backup and recovery pipeline from scratch.

    Cost factorManaged SupabaseSelf-hosted Supabase
    Base monthly costFree to $25+ (Pro)VPS cost, often $20 to $80+ for a production-sized box
    BackupsIncluded on Pro and aboveYou build and maintain this yourself
    BandwidthIncluded allowance, then overage feesBilled by your cloud or VPS provider
    Engineering timeNear zero for infraOngoing, every week
    Point-in-time recoveryPaid add-onPossible via Postgres tooling, but you implement it

    The honest conclusion: for most early-stage projects, managed is cheaper in total cost once your time is priced in at all.

    The Operational Burden You're Signing Up For

    Cost is only half the picture. The other half is who answers for uptime when something breaks at an inconvenient hour.

    What managed handles for you: upgrades, failover, patching

    With managed Supabase, platform upgrades, security patching, and failover for the underlying infrastructure are the provider's job. You never SSH into a box to apply a Postgres point release.

    What self-hosting puts on your plate: Postgres backups, security patches, uptime

    The self-hosting documentation is clear that managing your own backups and upgrades is part of the deal. In practice that means scripting pg_dump on a schedule, understanding continuous archiving and point-in-time recovery well enough to actually restore from it, and applying security patches to every one of the 11 containers, not just Postgres.

    The 2am question: who gets paged when Realtime falls over?

    This is the question that separates people who should self-host from people who shouldn't. If Realtime, Kong, or GoTrue crashes at 2am, managed Supabase has an on-call team. Self-hosted, it's whoever you designated, and if that's a single founder, the answer is usually nobody until morning.

    ResponsibilityManaged SupabaseSelf-hosted Supabase
    Postgres patchingProviderYou
    Container orchestrationProviderYou
    Backup scheduling and testingIncluded (paid tiers)You
    Incident responseProvider on-callYou or your team
    Scaling the underlying hardwareClick to upgradeManual provisioning

    Data Residency, Compliance & Vendor Lock-In

    This is the section most cost-focused comparisons skip entirely, and it's where self-hosting actually earns its keep.

    When data must stay on specific infrastructure (HIPAA, GDPR, internal policy)

    Some organizations have a hard requirement that data live on infrastructure they control, whether that's driven by internal security policy, a specific regulatory posture, or a client contract. In those cases, the question isn't "which is cheaper," it's "which option satisfies the constraint at all."

    Supabase is open source, so is your exit

    The core of Supabase lives in the public GitHub repository under an open-source license, which is the detail that actually matters for lock-in. If the managed platform ever stops fitting your needs, the same software that runs their cloud is the software you can run yourself, so you are never stuck rewriting against a proprietary API to leave.

    Why self-hosting is a control decision, not a cost decision

    For teams evaluating HIPAA or similar compliance needs, Supabase documents HIPAA-eligible options and other compliance details on the managed Enterprise tier. If managed Enterprise covers your compliance need, self-hosting buys you nothing extra. If your specific requirement truly mandates infrastructure you physically control, that's the actual reason to self-host, not the monthly bill.

    Scaling: Where Each Model Hits a Wall

    Both paths scale. The difference is who's doing the scaling work and how much tooling you have to assemble yourself.

    Managed: vertical compute add-ons and read replicas

    On managed Supabase, scaling mostly means clicking into bigger compute add-ons or provisioning read replicas to spread read traffic, both handled through the dashboard without touching infrastructure yourself.

    Self-hosted: you own connection pooling, replication, and sharding

    Self-hosted, every one of those moves is yours: setting up replication, deciding when to shard, and sizing hardware ahead of load rather than clicking a button when you notice slowdown.

    Supavisor and PgBouncer: connection pooling in both worlds

    Connection pooling exists in both models through Supavisor, Supabase's Postgres connection pooler, or classic tools like PgBouncer. The tooling itself isn't exclusive to either path, it's the operational responsibility for running and tuning it that changes.

    Decision Framework: Which One Fits Your Stage

    Strip away the ideology and the decision usually falls out of three questions: your stage, your team, and your actual data constraints.

    Solo founder / early MVP: almost always managed

    If you're a solo founder or small team validating an idea, the free tier and Pro plan on Supabase's pricing page cost less than your time is worth, and you have nobody to page at 2am anyway.

    Funded startup with an ops engineer: it depends on data policy

    Once you have dedicated infrastructure talent and a specific reason, cost at scale, a compliance posture, or a client requirement, self-hosting via the Docker Compose stack becomes a reasonable option rather than a burden nobody owns.

    Regulated or data-sovereign workloads: self-host or managed Enterprise

    If your workload has a hard data-residency requirement, compare self-hosting against managed Enterprise rather than Pro, since Enterprise's compliance scope may already satisfy the constraint without the operational load.

    Your situationRecommended path
    Solo founder, pre-revenueManaged Free or Pro
    Small team, product-market fit searchManaged Pro
    Funded startup, dedicated ops engineer, specific cost or policy driverSelf-hosted, evaluated case by case
    Regulated data, no strict residency mandateManaged Enterprise
    Regulated data, strict residency mandateSelf-hosted on your own infrastructure

    Try Both Before You Commit

    This isn't a decision you should make from a blog post, including this one. Both paths are reproducible in under an hour.

    Spin up managed free tier in minutes

    Follow the official getting started guide to create a free managed project and get a feel for the dashboard, auth flow, and API surface before you spend a dollar.

    Run the docker-compose self-host locally to feel the ops load

    Clone the stack from the self-hosting Docker guide and run it locally. Watching all 11 containers start, and troubleshooting the one that doesn't, teaches you more about the real ops burden than any comparison article.

    A one-week evaluation checklist

    • Day 1 to 2: stand up both environments from the official docs above
    • Day 3: migrate a small, real table and test auth end to end on each
    • Day 4: simulate a failure (stop the Realtime container, kill a connection pool) and time your own recovery
    • Day 5: price out a year of each option at your expected scale, including your time
    • Day 6 to 7: write down the one non-cost reason (if any) that would force self-hosting

    Migration Paths Between the Two

    The good news: this isn't a one-way decision. Open-source compatibility means you can move later without a rewrite.

    Managed to self-hosted: pg_dump, storage export, auth migration

    Moving off managed means exporting your schema and data with pg_dump, exporting storage objects, and migrating auth users, then restoring into your self-hosted Postgres instance with the matching pg_restore process.

    Self-hosted to managed: using the Supabase CLI and migrations

    Going the other direction, the Supabase CLI handles schema migrations cleanly, since the same migration files that version your self-hosted database apply directly to a managed project.

    What does NOT transfer cleanly (edge function secrets, custom Kong config)

    Two things rarely move cleanly: edge function secrets, which you have to re-enter in the new environment rather than export, and any custom Kong gateway configuration you hand-edited on a self-hosted instance, since managed Supabase controls that layer for you. Plan to rebuild those two pieces manually regardless of which direction you're migrating.

    Frequently Asked Questions

    Is self-hosted Supabase actually free? The software is free and open source, but running it still costs a VPS, your time for maintenance, and whatever backup or monitoring tooling you add. "Free" refers to the license, not the total bill.

    At what scale does self-hosting Supabase become cheaper than managed? There's no universal number, but self-hosting tends to make financial sense once your usage consistently exceeds several managed Pro or Team-tier add-ons and you already have engineering time budgeted for infrastructure work, because at that point the VPS cost plus your existing team's time undercuts the add-on fees.

    Can I move from managed Supabase to self-hosted later without rewriting my app? Yes. Because the open-source stack documented in the self-hosting guide is the same software running the managed platform, your application code, API calls, and database schema carry over. You migrate data and config, not application logic.

    Does self-hosted Supabase include the Studio dashboard? Yes, Studio is one of the containers in the Docker Compose reference, so you get the same table editor and SQL interface, you just run it yourself alongside the rest of the stack.

    What happens to my data and uptime if a self-hosted Supabase container crashes? Whatever that container does stops working until someone restarts it. If it's Realtime, subscriptions drop. If it's GoTrue, logins fail. Your underlying Postgres data is generally safe since it's a separate container, but availability depends entirely on your own monitoring and response, not a provider's on-call team.

    Is managed Supabase HIPAA or GDPR compliant, or do I need to self-host for compliance? Managed Supabase documents HIPAA-eligible options and other compliance details on its Enterprise tier, so compliance alone doesn't automatically require self-hosting. Check whether managed Enterprise's published scope actually covers your specific requirement before assuming you need to self-host.

    How many servers or how much RAM do I need to self-host Supabase in production? The official docs don't publish a single fixed number because it depends on your traffic and data size, but because you're running 11 separate services (Postgres, Kong, GoTrue, PostgREST, Realtime, Storage, Studio, and supporting processes) on one box, undersizing is the most common early mistake. Size generously and plan to split services onto separate hosts as load grows.

    The Bottom Line

    Managed Supabase wins on cost and operational simplicity for the vast majority of teams, especially pre-scale. Self-hosting wins when you have a specific, non-negotiable reason tied to data residency, compliance scope, or long-term independence from any single vendor, not because it looks cheaper on a spreadsheet that ignores your own time. Start with the managed free tier, and only move to the self-hosted stack once you can name the exact constraint that managed can't satisfy.

    Work with the studio

    CarbonApps is an independent venture studio in Los Angeles.

    Get in touch