Intro to Supabase: Why It's the Backend You Need
I remember the old days when people argued endlessly about the right way to handle the backend: Firebase, Supabase, PocketBase, self-hosting, even a notepad. Those debates seem to be over. Nobody really cares anymore.
The new AI-powered era has made the stack the least important part, because hundreds of people are building things with zero knowledge of backend, frontend, or infrastructure.
I'm not here to debate whether that's the right approach. What matters is shipping the product fast and without friction, because that's how you find out if your idea works. Tools like Supabase or Firebase hand you everything packaged and ready to use, no server, auth, database, or functions to set up yourself. And Supabase stands out with AI and CLI tooling that make the whole process even easier.
So let's go piece by piece. This is the first article in a series where we'll break down every Supabase feature and how to actually use it.
What is Supabase
Supabase is the open-source alternative to Firebase. But unlike Firebase (which uses NoSQL), Supabase is built on PostgreSQL. This means you get a real relational database with all the power of SQL, joins, and the thousands of extensions PostgreSQL offers.
What makes Supabase special is that it packages in one product:
- PostgreSQL - Your database
- Auth - Authentication with multiple providers
- Storage - Files and images
- Realtime - Real-time subscriptions
- Edge Functions - Serverless logic
- Vector - Embeddings for AI
All of this with a web dashboard where you can manage your project, run queries, and monitor your application.
Why choose Supabase over Firebase
| Feature | Supabase | Firebase |
|---|---|---|
| Database | PostgreSQL (SQL) | Firestore (NoSQL) |
| Open source | Yes | No |
| Self-host | Yes | No |
| Query language | Standard SQL | Proprietary |
| Pricing | Generous free tier | Pay-as-you-go |
The main difference is that with Supabase you use standard SQL. If tomorrow you need to migrate to another PostgreSQL provider, you can do it without rewriting your database logic. With Firebase, you're locked into their ecosystem.
Quick setup
Create a project
- Go to supabase.com and create an account
- Click "New Project"
- Choose name, database password, and region
- Wait 2 minutes for provisioning
Install the client
// terminal
npm install @supabase/supabase-js
Configure the connection
// src/lib/supabase.ts
import { createClient } from '@supabase/supabase-js'
const supabaseUrl = import.meta.env.VITE_SUPABASE_URL
const supabaseKey = import.meta.env.VITE_SUPABASE_ANON_KEY
export const supabase = createClient(supabaseUrl, supabaseKey)
Your first query
// src/main.ts
import { supabase } from './lib/supabase'
// Create a table and query it
const { data, error } = await supabase
.from('tasks')
.select('*')
.order('created_at', { ascending: false })
console.log(data) // []
That's it. No complicated SDKs, no server configuration, no ORM if you don't want one. Direct SQL from the client.
Architecture
Supabase is PostgreSQL running on AWS, with an automatic API layer on top. Every table you create automatically generates a REST API and a typed SDK.
Your App → Supabase Client → PostgREST → PostgreSQL
→ GoTrue (Auth)
→ Realtime
→ Storage
This architecture means you can always bypass the SDK and use direct SQL when you need more control.
Pricing: the free tier
Supabase's free tier is generous:
- 500 MB database
- 1 GB storage
- 50,000 auth users
- 500 MB bandwidth
- 2 projects
For an MVP, side project, or even a small production app, the free tier is enough. When you need to scale, paid plans start at $25/month.
When to use Supabase
Supabase is ideal for:
- Web apps with auth and database
- Fast APIs without custom backend
- Projects that need realtime (chat, dashboards)
- Apps that want to use standard SQL
- MVPs that need to scale quickly
Not ideal for:
- Apps that only need simple key-value
- Projects deeply integrated with Firebase
- Cases where you need complex server-side business logic (for that, a traditional backend is better)
What's next
In the next article we go deep into Auth: how to set up authentication with email, Google, GitHub, and more. We'll see how to protect your routes and handle sessions like a pro.