Tobias Ludwig
Start
ServicesWeb, Apps, Backend und KIPlanerBausteine wählen, Preis sofort sehenBranchen-DemosBeispielseiten für Handwerk, Praxis, GastroReferenzenKundenprojekte mit ErgebnisMatch-CheckPasst das Vorhaben zu mir?Über michWer hinter der Seite steht
ProjekteEigene Software und Open SourceProdukteFertige Apps und WerkzeugeFlutterPlugins und PaketeBlogNotizen aus der Praxis
ToolsKleine Helfer im BrowserTech-WikiWerkzeuge und Stacks, kurz erklärtShowcaseDemos, Shader, Inszenierungen
Support & HilfeHilfe zu laufenden ProjektenMein KontoTickets und Zugänge
Erstgespräch
Erstgespräch buchenKostenloser Kennenlern-CallKontakt schreibenNachricht per Formular
$whoami
Tobias Ludwig
DevOps · Application Manager · Software Engineer
$ls /pages
tobias-ludwig/projekte/kontakt/kalender/impressum/datenschutz/
$git remote
github.com/nexas105
online·next.js 16·hono·postgresql
© 2026 tjl·stay curious_
Ambient OFF
Weiter so… ↓↓ ← → ← → B A
zurück zur Tech-Wiki
Tech-Wiki/Plattformen
S

Supabase

Open-Source Firebase-Alternative: Postgres, Auth, Storage, Edge-Functions.

·Supabase·Apache-2.0
WebsiteDocsRepository

Ü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_role im Client.
  • Migrations als SQL-Files in supabase/migrations/ versionieren.
  • Auth via @supabase/ssr fü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 in lib/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)

  • Logbuch-App
  • Partner Flutter App
  • Bewerbungsplattform
  • MyFitCoach PRO
  • DBFV NRW Verbandsplattform

Referenzen(4)

  • myndfluence.de
  • physiques-unlimited.de
  • DBFV NRW Verbandsplattform
  • frank-klingebiel.de

Flutter Plugins(1)

  • media_backup

Produkte(2)

  • EroHub App
  • EroHub Community

Kategorie

Plattformen

Tags

baaspostgresauth

Aliase

supabase.io

Slug

supabase