Vertiefung · Deine eigene Web-App · Lektion W.5 · 20 Min.

Gemeinsame Daten: eine Datenbank bei Supabase

Danach speichert deine App ihre Daten in einer Datenbank bei Supabase in Frankfurt, die Tabellen sind von Anfang an geschützt, und du weißt, welcher Schlüssel in die App darf und welcher nie.

Stand 24. Oktober 2026 · Wir prüfen die Inhalte regelmäßig gegen die aktuellen Programme. Was ist neu?

Damit alle Nutzer dieselben Daten sehen, braucht deine App eine Datenbank im Internet. Wir nehmen Supabase: Dort bekommst du eine richtige Datenbank samt Anmeldung, kostenlos für kleine Projekte, mit Rechenzentrum in Frankfurt. Claude baut die App so um, dass sie dort speichert statt im Browser.

Ab jetzt geht es um echte Sicherheit. Zwei Dinge sind entscheidend und kommen in dieser Lektion: Der Schutz jeder Tabelle (Row Level Security, kurz RLS) ist von Anfang an eingeschaltet. Und in die App kommt nur der öffentliche Schlüssel, nie der geheime.

Schritt für Schritt

Kenn die Grenzen des kostenlosen Tarifs. Bei Supabase kostenlos: 2 aktive Projekte, 500 MB Datenbank je Projekt, bis zu 50.000 aktive Nutzer im Monat. Wichtig: Kostenlose Projekte werden pausiert, wenn sie 7 Tage kaum genutzt werden – dann musst du sie im Dashboard wieder aufwecken. Für eine Helferliste reicht das. Der Pro-Tarif kostet ab 25 $ im Monat. Aktuelle Werte: supabase.com/pricing.

Leg ein Konto und ein Projekt an. Auf supabase.com registrierst du dich und legst ein neues Projekt an. Dabei:

  • Name: zum Beispiel „helferliste“.
  • Region: Central EU (Frankfurt). So liegen die Daten in Deutschland.
  • Datenbank-Passwort: lass eins erzeugen und speichere es in deinem Passwortmanager. Nicht in den Chat, nicht in eine Datei im Projekt.

Versteh die zwei Schlüssel. In den Projekteinstellungen unter API Keys findest du:

  • den öffentlichen Schlüssel („publishable key“, beginnt mit sb_publishable_, in älteren Projekten „anon“). Er darf in die App. Er reicht nur so weit, wie deine Schutzregeln es erlauben.
  • den geheimen Schlüssel („secret key“, beginnt mit sb_secret_, früher „service_role“). Er umgeht alle Schutzregeln. Er gehört nie in die App, nie in den Chat, nie ins Sicherungsbuch.

Lass Claude die Tabellen vorbereiten.

Öffne in Supabase den SQL Editor, füge den Text ein und klick auf „Run“. Danach siehst du die Tabellen im Bereich Table Editor. Bei jeder sollte der Schutz als eingeschaltet angezeigt werden.

Sag Claude:Wir nehmen Supabase. Schreib mir das SQL für die Tabellen aus PLAN.md. Schalte auf jeder Tabelle Row Level Security ein. Noch keine Regeln – die machen wir in W.6. Erklär mir jede Tabelle in einem Satz.

Versteh, warum vorerst nichts sichtbar ist. Mit eingeschaltetem Schutz und noch ohne Regeln kann die App über den öffentlichen Schlüssel gar keine Daten lesen oder schreiben. Das ist richtig so: Erst kommt die Tür, dann der Türsteher mit der Gästeliste. Ohne Schutz dagegen könnte jeder mit dem öffentlichen Schlüssel alles lesen und ändern.

Trag die Verbindung in die App ein. Die Projekt-Adresse und der öffentliche Schlüssel kommen in eine Datei .env.local in deinem Projekt. Die legst du selbst an – oder Claude legt sie mit Platzhaltern an und du ersetzt sie.

Der öffentliche Schlüssel ist zwar nicht geheim, aber die Gewohnheit ist wichtig: Schlüssel trägst du selbst ein, nicht über den Chat.

Sag Claude:Leg eine Datei .env.local mit Platzhaltern für die Supabase-Adresse und den publishable key an, sorg dafür, dass sie nicht ins Sicherungsbuch kommt, und bau die App so um, dass sie Supabase statt des Browserspeichers nutzt. Ich trage die Werte selbst ein.
Hängst du irgendwo fest? Frag deinen Claude – so oft du willst, auch zu jedem einzelnen Schritt.
Sag Claude:Ich mache gerade die Lektion „W.5 Gemeinsame Daten: eine Datenbank bei Supabase“ im AWA Campus und hänge bei diesem Schritt: … Erklär ihn mir bitte einfacher, Schritt für Schritt. Ich bin Anfänger.
Geschafft, wenn …
  • dein Supabase-Projekt in Frankfurt läuft und das Datenbank-Passwort im Passwortmanager liegt,
  • die Tabellen aus deinem Plan angelegt sind und auf jeder der Schutz (RLS) eingeschaltet ist,
  • die App mit Projekt-Adresse und öffentlichem Schlüssel verbunden ist,
  • du erklären kannst, warum der geheime Schlüssel nie in die App darf.
Wörter erklärt
  • Supabase: ein Dienst, der eine Datenbank samt Anmeldung für Apps bereitstellt.
  • SQL: die Sprache, mit der man Datenbanken Befehle gibt, zum Beispiel „lege eine Tabelle an“.
  • Row Level Security (RLS): Schutzregeln direkt in der Datenbank, die für jede Zeile entscheiden, wer sie sehen oder ändern darf.
  • Publishable key: der öffentliche Schlüssel für die App, eingeschränkt durch RLS.
  • Secret key: der geheime Generalschlüssel, der alle Regeln umgeht. Nie in die App.
  • .env.local: eine Datei für Einstellungen und Schlüssel, die nicht ins Sicherungsbuch und nicht ins Internet kommt.