Supabase to PostgreSQL + Auth + Storage + Realtime + Edge Functions w jednej platformie BaaS (Backend-as-a-Service). Open source, hostowany albo self-hosted. W ostatnich 2 latach stał się domyślnym wyborem dla startupów na Next.js — z dobrego powodu: skraca czas wdrożenia MVP z miesięcy do tygodni. Ale nie zawsze to dobry wybór. W tym wpisie rozpisujemy trade-offy, które bierzemy pod uwagę, gdy klient pyta: „Supabase czy własny backend?"
Co dokładnie daje Supabase
- PostgreSQL — pełna relacyjna baza, taka jak na każdym własnym serwerze,
- Row Level Security (RLS) — kontrola dostępu na poziomie wierszy w SQL, bez warstwy aplikacyjnej,
- Authentication — JWT, OAuth (Google, GitHub, ~25 providers), magic links, OTP,
- Storage — S3-kompatybilny obiekt storage do zdjęć, dokumentów, plików,
- Realtime — subskrypcje WebSocket do zmian w bazie (czat, dashboardy live),
- Edge Functions — Deno/TypeScript funkcje serverless,
- Auto-generated REST API i GraphQL bezpośrednio z schema bazy.
Kiedy Supabase to dobry wybór
1. MVP startupu w 6-12 tygodni
Nie masz czasu pisać własnej autentykacji, schematu uprawnień i deployu bazy. Supabase + Next.js + Vercel daje cały stack w 1 wieczór konfiguracji.
2. Aplikacja SaaS B2B z prostą logiką
CRUD nad relacyjną bazą, autentykacja, role użytkowników, integracje przez Edge Functions. 80% backendu można zrobić w RLS bez ani jednego API endpointa.
3. Realtime jako requirement
Czat, kolaboracyjna edycja, dashboard live. Supabase Realtime działa out-of-the-box. Własne WebSocket od zera to 2-3 tygodnie pracy.
4. Mały zespół, brak DevOps
Brak osoby od bazy danych, backupów, monitoringu. Supabase to obsługuje za Ciebie.
Kiedy Supabase to zły wybór
1. Aplikacja z bardzo dużym ruchem na bazę
Supabase ma limity per plan (połączenia, requests, storage). Dla aplikacji z > 1M zapytań dziennie szybko zaczyna być droższe niż własny Postgres na DigitalOcean lub Hetznerze.
2. Skomplikowana logika biznesowa
RLS świetnie sprawdza się w 90% przypadków, ale dla logiki typu „użytkownik może edytować, jeśli ma rolę X i status zamówienia Y i nie minął termin Z" — Edge Functions stają się tańsze niż gimnastyka w SQL. Własny backend daje tu więcej kontroli.
3. Wymóg trzymania danych w PL / on-premise
Supabase hostowany jest na AWS (EU regions dostępne, ale dane fizycznie u Amazonu). Dla branż regulowanych (medyczna, finansowa, publiczna) self-hosted Supabase lub własny stack to często wymóg.
4. Vendor lock-in jako ryzyko
Supabase jest open source — teoretycznie możesz exportować i hostować sam. W praktyce migracja produkcyjnego Supabase do self-hosted to 1-2 tygodnie pracy i nieoczywiste pułapki (Edge Functions, Realtime config). Lepiej z góry zdecydować, czy to akceptowalne.
Koszty — kiedy Supabase jest droższy niż własny Postgres
Cennik (czerwiec 2026):
- Free — 500 MB bazy, 1 GB storage, 50 000 monthly active users. Wystarczy dla MVP i małych projektów.
- Pro ($25/mies.) — 8 GB bazy, 100 GB storage, 100 000 MAU. Sweet spot dla większości produkcyjnych aplikacji.
- Team ($599/mies.) — dla zespołów z SLA, audit logs, multi-region.
Porównanie: własny PostgreSQL na Hetzner CCX13 (4 vCPU, 16 GB RAM) — ~25 €/mies. + DevOps + backupy. Dla aplikacji do średniej skali Supabase Pro jest cenowo opłacalny do około 1-2 mln zapytań dziennie. Wyżej — własny stack staje się tańszy.
Supabase + Next.js — sweet spot
Najlepiej Supabase wypada w połączeniu z Next.js App Router:
- Server components czytają bezpośrednio z Postgres przez
@supabase/ssr,
- Autentykacja przez middleware Next.js,
- Storage do obrazów z
next/image,
- Edge Functions dla webhooków (Stripe, SendGrid).
To stack, w którym 80% backendu robisz w bazie (RLS + funkcje SQL), 20% w Edge Functions. Next.js to tylko frontend i orkiestracja.
Wnioski
Supabase to narzędzie produktywności, które ma świetny moment użycia: od MVP do średniego scale-up. Powyżej skali (i poniżej oczekiwanej elastyczności logiki biznesowej) własny backend z Postgres na Neonie lub własnym serwerze daje większą kontrolę za niższą cenę. Sprawdzonym wzorem jest też: zaczynamy od Supabase, eksportujemy do self-hosted, gdy skala uzasadnia — ale wtedy ważne, żeby od pierwszego dnia nie wpadać w features, których nie można łatwo odtworzyć.
Pełna oferta budowy aplikacji webowych: aplikacje webowe. Strony Next.js: strony Next.js. Pellet biomasy — case study, w którym użyliśmy własnego Postgres na Neonie zamiast Supabase: Giełda Biomasy.