PostgreSQL with a Firebase-like API
Supabase gives you a hosted PostgreSQL database with a REST API generated from your schema. Create a table posts in the dashboard, and the API endpoint returns JSON. The API supports filtering, sorting, pagination, and joins via PostgREST. For simple CRUD apps, you write zero backend code: the database IS the API. For complex logic, write PostgreSQL functions or use Edge Functions.
Real-time subscriptions from database changes
Supabase Realtime listens to PostgreSQL's replication stream and pushes changes to WebSocket clients. Subscribe to INSERT ON posts and your frontend updates automatically when a new post is created. This is the exact feature that made Firebase popular, built on PostgreSQL instead of a proprietary database. Latency is under 100ms for single-region setup.
Vector search with pgvector: RAG in 10 minutes
Supabase bundles pgvector. Create an embeddings table with a vector column, call the match_documents RPC function, and get similarity search results. For the saas.pet review search, I stored 200 review embeddings in Supabase. Search latency: 50ms for top-10 results. The embedding generation is not built-in: you call OpenAI or a local embedding model and store the vectors yourself.
Free tier vs paid: the limits that matter
Free tier: 500MB database, 2GB bandwidth, 50,000 monthly active users, 2 Edge Functions. Covers most solo projects. Paid starts at $25/month for 8GB database, 50GB bandwidth, and email support. The free tier database pauses after 1 week of inactivity (wakes on next request with a 2-second delay). For hobby projects not used daily, this pause is annoying but manageable.
Supabase vs Firebase vs Neon
Supabase: PostgreSQL plus real-time plus auth plus vector search, open-source. Best for full-stack apps needing a real backend. Firebase: NoSQL, real-time, Google ecosystem, proprietary. Best for mobile apps. Neon: serverless PostgreSQL, database branching, no real-time. Best for development workflows with branching.