Your app idea is ready, but the boring part is not: before the first screen works, you need a database, user sign-in, an API, file uploads and live updates. So, what is Supabase? Supabase is an open-source backend platform that bundles a Postgres database with sign-in, ready-made APIs, realtime updates and file storage in one project.
That bundle is why builders, from solo founders to teams using AI app builders, often start with it. Because it sits on PostgreSQL, your data lives in normal SQL tables. If you are still weighing databases, our comparison of PostgreSQL vs MySQL explains why that matters.
In this guide, you will learn what Supabase is made of and which features matter most. You will also see how Supabase Cloud differs from self-hosting and how it compares to Firebase, Appwrite and PocketBase. Finally, you will learn how to run it on a server you control.
TL;DR: Supabase in 60 Seconds
Short on time? Here is the whole guide in a few lines:
- Supabase is an open-source backend built on PostgreSQL, released under the Apache License 2.0.
- One project gives you a database, Auth, auto-generated REST and GraphQL APIs, Realtime, Storage, Edge Functions and the Studio dashboard.
- It is often called an open-source Firebase alternative, but Supabase itself says it is not a one-to-one copy of Firebase.
- Supabase Cloud is the managed service. Self-hosted Supabase runs the same core stack with Docker, one project per install.
- Self-hosting needs at least 4 GB RAM, 2 CPU cores and 40 GB SSD, according to Supabase’s own docs.
- Self-hosting gives you control of your data. The trade-off is that updates, backups and security become your job.
What Is Supabase?
Supabase is a backend-as-a-service (BaaS) that turns a PostgreSQL database into a complete app backend, with sign-in, APIs, live updates and file storage built around it. You write the frontend. Supabase gives that frontend a secure way to read and write data.
Think of it like renting a fully fitted kitchen instead of an empty room. You still cook the meal, but you skip weeks of plumbing and wiring first.
A few things worth knowing:
- It is real Postgres. You can write SQL, use joins and add extensions. Nothing is hidden behind a custom query language.
- Security lives in the database. Supabase uses Postgres Row Level Security policies, so rules about who can see which rows sit next to the data.
- It is open source. Every core part is published on GitHub, which is what makes self-hosting possible.
- It is modular. You can use Auth or Storage on their own, or the whole stack together.
Supabase at a Glance
| Item | Detail |
|---|---|
| License | Apache License 2.0 |
| Core database | PostgreSQL |
| Company founded | January 2020 |
| GitHub stars | About 114,000 (as of November 2026) |
| Ways to run it | Supabase Cloud (managed) or self-hosted with Docker |
| Self-hosting minimum | 4 GB RAM, 2 CPU cores, 40 GB SSD |
| Self-hosting recommended | 8 GB+ RAM, 4+ CPU cores, 80 GB+ SSD |
The star count and feature list come from the official Supabase GitHub repository. Sizing comes from Supabase’s self-hosting with Docker guide.
How Supabase Works: The Parts Behind One Project
Supabase is not a single program. It is a set of open-source services around one Postgres database, with an API gateway in front that routes each request:
| Component | What it does in plain words |
|---|---|
| Postgres | The database that stores your tables, users and file permissions |
| Auth (based on GoTrue) | Handles sign-up, login and sessions, then issues the tokens your app sends with each request |
| PostgREST | Reads your database schema and serves it as a REST API automatically |
| pg_graphql | A Postgres extension that serves the same data over GraphQL |
| Realtime | An Elixir server that pushes database changes and messages to connected clients |
| Storage | A file API that keeps files in S3-compatible storage and permissions in Postgres |
| Edge Functions | Runs your server-side TypeScript on a Deno-based runtime |
| Studio | The web dashboard for tables, SQL, policies, users and buckets |
| postgres-meta | Lets Studio manage tables, roles and queries |
| Supavisor | Pools database connections so many clients can share them |
| API gateway | Envoy by default in the self-hosted setup, with Kong as an option |
The Auth server started as a fork of Netlify’s GoTrue. Today, the Supabase Auth project says the two have diverged a lot in features.
Here is the part that trips people up. All of these parts share one database. As a result, a sign-up, a file upload and a live update all respect the same Row Level Security rules.
7 Key Supabase Features
1. A Full PostgreSQL Database
Every Supabase project is a complete Postgres database with tables, views, functions, triggers and extensions. Any standard Postgres tool can connect to it. Leaving later is easier too, because your data is not locked in a custom format.
2. Auth With Many Sign-In Methods
Supabase Auth supports passwords, magic links, one-time codes, social sign-in and single sign-on. User records live in a special schema inside your own Postgres database. You can link them to your own tables with foreign keys and triggers.
3. Instant REST and GraphQL APIs
Create a table and PostgREST exposes it as a REST API right away. Change the schema and the API follows. Studio also shows generated API docs, so frontend work can start early.
4. Realtime Updates
Realtime offers three tools. Broadcast sends fast messages between clients, Presence shows who is online and Postgres Changes streams inserts, updates and deletes. Chat, live dashboards and multiplayer screens are the classic uses.
5. File Storage With Access Rules
Storage handles uploads of any size (including resumable uploads) and speaks the S3 protocol. Access rules use the same Row Level Security policies as your tables. Built-in image transformation can resize and compress images when they are requested.
6. Edge Functions
Edge Functions are server-side TypeScript functions that run on Deno. Use them for payment events or calls to third-party APIs. On Supabase Cloud they run close to users around the world; self-hosted, they run on your own server.
7. Vectors and AI Search With pgvector
Supabase includes pgvector, a Postgres extension that stores and searches vector embeddings. That lets you build semantic search, hybrid search or a chatbot’s memory inside the same database as your app data.
What Is Supabase Used For? Who It Fits
SaaS Products and Internal Tools
A typical SaaS app needs accounts, team data and permissions. Supabase covers all three, and the SQL underneath makes reports and billing queries straightforward.
Apps Built With AI App Builders
AI app builders like Lovable often pair the frontend they generate with a Supabase backend. You can point that app at your own Supabase project, as our guide on how to connect Supabase to Lovable shows. To run the frontend on your own server too, see Lovable hosting on xCloud or our roundup of the best hosting for Lovable apps.
Mobile and Live Apps
Official client libraries for JavaScript, Flutter, Swift and Python bring sign-in, data and uploads to web and mobile apps. Realtime then keeps chat, dashboards and shared screens up to date without polling.
Supabase Cloud vs Self-Hosted: What Actually Differs
The core stack is the same open-source code in both cases. The experience around it is not.
| Area | Supabase Cloud | Self-hosted Supabase |
|---|---|---|
| Who runs the servers | Supabase | You (or your host) |
| Projects | Many projects and organizations per account | One project per install; Studio does not support multiple projects |
| Configuration | Dashboard settings | Mostly environment variables in a .env file |
| Backups | Managed backups and point-in-time recovery | Your responsibility |
| Branching, ETL, Management API | Available | Not available |
| Logs and analytics | Built in | Not in the default setup; optional add-on that needs more RAM |
| Edge Functions | Deploy from the dashboard or CLI | Files on your server that you deploy yourself |
| Data location | Supabase’s cloud regions | Any server you choose |
These differences come from Supabase’s own self-hosting overview. It also notes that self-hosted Supabase is community-supported and collects no telemetry.
The honest take? Supabase Cloud is the fastest way to start. Self-hosting makes sense when you need data on infrastructure you control, predictable server costs or an isolated environment for compliance.
Supabase vs Firebase vs Appwrite vs PocketBase
All four give an app a ready-made backend. They differ on the database and on where it runs.
| Supabase | Firebase | Appwrite | PocketBase | |
|---|---|---|---|---|
| Owner | Supabase (open source) | Google (proprietary) | Appwrite (open source) | Open-source project |
| License | Apache 2.0 | Commercial service | BSD-3-Clause | MIT |
| Main database | PostgreSQL (SQL) | Firestore (NoSQL documents) | Its own databases, with Postgres and MySQL options | Embedded SQLite |
| Self-hosting | Yes, Docker stack | No | Yes, Docker | Yes, one executable |
| Auth, storage, realtime | Yes | Yes | Yes | Yes |
| Serverless functions | Edge Functions (TypeScript) | Cloud Functions | Functions in isolated runtimes | Extend with Go or JavaScript hooks |
| Best for | SQL-first apps that may need to self-host | Teams happy on Google’s managed cloud | Teams wanting a broad open-source suite | Small apps and prototypes on tiny servers |
Firebase deserves its reputation. Its managed service, mobile SDKs and Google integrations are mature, and its newer Data Connect product even adds a managed PostgreSQL option. The catch is that Firebase runs only on Google’s cloud.
Appwrite covers similar ground to Supabase, plus messaging and frontend hosting. PocketBase is the lightweight choice, but it has not reached version 1.0, so full backward compatibility is not guaranteed yet.
Rule of thumb: pick Supabase when you want real Postgres and the freedom to move it. Pick PocketBase, also available as PocketBase hosting on xCloud, when the whole app should fit on a tiny server.
Self-Hosting Supabase: Requirements and Ways to Run It
Supabase’s Docker guide lists 4 GB RAM, 2 CPU cores and 40 GB SSD as the minimum for all components. It recommends 8 GB+ RAM, 4+ cores and 80 GB+ SSD. You can remove services you do not use, such as Realtime or Storage, to cut that down.
You have two realistic paths:
- Docker on your own server. Clone the official setup, generate secrets, set a Studio password, add a reverse proxy for HTTPS and start the stack. If Docker Compose is new to you, start there.
- A managed one-click install. A host prepares the server, deploys the stack, creates credentials and sets up HTTPS on your domain.
The DIY path is free in software terms, but your time is the hidden cost. Supabase’s own docs list your duties: server upkeep, security updates, Postgres maintenance, backups, monitoring and uptime.
That includes the occasional 3 a.m. restart when one container stops and sign-ins fail.
Two more points apply to every self-hosted install. Database migrations do not run by themselves, and pulling a newer Docker Compose file does not update your schema. Edge Functions also need to be deployed to the server by hand.
Pros and Cons of Supabase
| Pros | Cons |
|---|---|
| ✅ Real PostgreSQL with SQL, joins and extensions | ❌ Many services to run when self-hosting |
| ✅ Auth, APIs, Realtime and Storage in one project | ❌ Self-hosted version lacks branching, managed backups and the Management API |
| ✅ Open source under Apache 2.0, with no lock-in | ❌ Row Level Security policies take time to learn |
| ✅ Self-hostable for data control | ❌ Needs at least 4 GB RAM to self-host the full stack |
| ✅ pgvector for AI search in the same database | ❌ Not a drop-in replacement for Firebase apps |
Deploy Your Own Supabase Backend With xCloud
If you want self-hosted Supabase without assembling it by hand, Supabase hosting on xCloud deploys the stack from One Click Apps. You get HTTPS on your own domain, with admin and database credentials generated for you.
Here is how it works:
- Create an NGINX server. Use an xCloud managed server, or connect your own server from a provider like AWS, Vultr, DigitalOcean or Linode through self-managed hosting.
- Add a new site. Click New Site, choose your server, open One Click Apps and select Supabase.
- Set up the site. Enter a Site Title and Tags, then choose Go Live or Demo Site.
- Configure the domain. Enter your domain, then copy the generated Admin Username and Admin Password, along with the Database Name, Database Username and Database Password.
- Open Studio. Click Visit Site, sign in and start creating tables, policies and storage buckets.
- Adjust settings later. Open Environment in the site sidebar, change what you need and click Update Environment.
One honest limit: xCloud supports one Supabase project per server, because a second project hits port conflicts in the multi-container setup. Edge Functions and migrations still need the manual steps described above.
For sizing, xCloud recommends the 16 GB Cloud VPS ($59.99 per month) as the starting point, with 6 GB for quick tests only. Plans include free SSL and server security updates, along with server backups and snapshots. Read how backups work in xCloud before you go live.
Ready to run a Postgres backend you own? Deploy Supabase on xCloud and have Studio open in minutes.
👉 Follow the step-by-step guide to install Supabase with xCloud.
Choose the Right Supabase Setup for Your App This Week
Supabase gives you a full Postgres database plus the backend pieces most apps rebuild from scratch. Start on Supabase Cloud if speed matters most, and self-host when control of your data matters more.
This week, sketch your tables, list the features you need and pick where it runs. If other apps also need Postgres, read about managed PostgreSQL and pgAdmin on xCloud as well.
If you have found this blog helpful, feel free to subscribe to our blogs for valuable tutorials, guides, knowledge and tips on web hosting and server management. You can also join our Facebook community to share insights and engage in discussions.
Frequently asked questions
What is Supabase in simple words?
Supabase is an open-source backend for web and mobile apps. It gives you a Postgres database, user sign-in, ready-made APIs, live updates and file storage in one project. You build the frontend and Supabase handles the data side.
Is Supabase free?
The software is free and open source under the Apache License 2.0, so self-hosting costs only the server. Supabase Cloud also has a free plan for getting started. Check supabase.com for current plan limits, since they change over time.
Is Supabase a database or a backend?
Both. At its core is a full PostgreSQL database. Around it, Supabase adds Auth, auto-generated APIs, Realtime, Storage and Edge Functions, which together make it a backend platform.
Is Supabase better than Firebase?
Neither is better for every app. Supabase suits teams who want SQL and the option to self-host. Firebase suits teams who want Google’s fully managed service and its document database.
Can I self-host Supabase?
Yes. Supabase publishes an official Docker setup for your own server, with a minimum of 4 GB RAM, 2 CPU cores and 40 GB SSD. Some Cloud features, such as branching and managed backups, are not included.
What is the difference between Supabase Cloud and self-hosted Supabase?
Supabase Cloud is the managed service, with many projects per account and managed backups. Self-hosted Supabase runs one project on your server, configured through environment variables. You handle updates, backups and security, or let a managed host run the server side.
I built my app in Lovable. Can I connect it to my own Supabase?
Yes. Copy the connection details from your Supabase project’s Connect panel and give them to Lovable, then run Lovable’s SQL in the Supabase SQL Editor. Our guide on how to connect Supabase to Lovable walks through each step.
