Intro to Supabase: Why It's the Backend You Need

Kevin Dávila
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-jsConfigure 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
→ StorageThis 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.