zurück zur Tech-Wiki
Tech-Wiki/Plattformen
S
Supabase
Open-Source Firebase-Alternative: Postgres, Auth, Storage, Edge-Functions.
·Supabase·Apache-2.0
Übersicht
Was ist es?
Supabase ist die Open-Source-Firebase-Alternative: Postgres + Auth + Storage + Realtime + Edge Functions hinter einer einheitlichen API. Self-hostbar (so läuft dieses Projekt auf backend.tobiasjonas-ludwig.de) oder als Managed-Service.
Quickstart
pnpm add @supabase/supabase-js @supabase/ssr
In Next.js (App Router):
// lib/supabase/server.ts
import { createServerClient } from '@supabase/ssr'
import { cookies } from 'next/headers'
export async function createClient() {
const cookieStore = await cookies()
return createServerClient(URL, ANON_KEY, { cookies: { ... } })
}
Typische Patterns
- RLS first — jede Tabelle bekommt Row-Level-Security-Policies, niemals
service_roleim Client. - Migrations als SQL-Files in
supabase/migrations/versionieren. - Auth via
@supabase/ssrfür Next.js — Cookies werden korrekt durchgereicht. - Edge Functions für Webhooks / serverseitige Logik in Deno:
supabase functions new my-fn && supabase functions deploy my-fn - Realtime-Subscriptions für Live-Updates:
supabase.channel('foo').on('postgres_changes', ...).subscribe().
Gotchas / Was oft schiefgeht
service_role-Key niemals im Browser — full DB-Bypass. Nur server-side, hier inlib/supabase/proxy.ts.- RLS-Policies vergessen → Tabelle ist entweder dicht (kein Read) oder offen (alle dürfen alles).
enable row level security+ explizite Policies. - Self-hosted: GoTrue / PostgREST / Realtime sind separate Container — Probleme erst in den richtigen Logs suchen.
select()ohne Filter zieht die ganze Tabelle — RLS schützt vor Daten-Leak, nicht vor Cost.- Auth-Redirects in SSR: Cookie-Setting nach Streaming-Start funktioniert nicht — Middleware nutzen.
Wann nicht?
Wenn du keine Postgres-Features brauchst und reines Document-DB-Modell ausreicht → Firebase / Mongo. Komplexe Multi-Tenant-Setups mit Schema-pro-Tenant → eigene Postgres-Infra.
Eingesetzt in
Projekte(5)
Flutter Plugins(1)
Produkte(1)