[{"data":1,"prerenderedAt":594},["ShallowReactive",2],{"blog-de-back-up-supabase-free-tier":3,"blog-index-de":352},{"id":4,"title":5,"body":6,"category":310,"cover":311,"coverAlt":312,"description":313,"draft":314,"extension":315,"faq":316,"image":332,"keywords":333,"meta":340,"navigation":341,"ogTitle":342,"path":343,"published":344,"seo":345,"stem":346,"tldr":347,"updated":344,"__hash__":351},"blog_de\u002Fblog\u002Fback-up-supabase-free-tier.md","Supabase Gratis-Tarif: Backup ohne Terminal selbst machen",{"type":7,"value":8,"toc":298},"minimark",[9,13,21,24,29,32,41,45,48,51,54,58,61,125,131,139,142,149,153,159,175,192,197,205,209,217,220,223,227,230,235,253,266,270,290],[10,11,12],"p",{},"Dein Projekt läuft im Supabase Gratis-Tarif, und du hast Database und dann\nBackups geöffnet, auf der Suche nach einer Liste datierter Kopien. Da ist\nnichts. Keine Daten, kein Wiederherstellen-Knopf, nur ein Hinweis auf ein\nUpgrade. Die Seite ist nicht kaputt. Es gibt im Supabase Gratis-Tarif keine\nBackups aufzulisten, weil der Tarif keine anlegt.",[10,14,15,16,20],{},"Hier gehen die meisten Antworten darauf schief. Sie geben dir einen\n",[17,18,19],"code",{},"pg_dump","-Befehl, also das richtige Werkzeug und eine Anweisung, der du nicht\nfolgen kannst: Sie setzt ein Terminal voraus, eine Postgres-Installation und\neinen Connection String, und du hast diese App in Lovable oder Bolt gebaut,\ngerade damit du nichts davon je brauchst.",[10,22,23],{},"Du kommst stattdessen über das Dashboard an deine Daten. Ein Weg dauert rund\nzehn Minuten und gibt dir deine Zeilen. Der andere dauert länger und gibt dir\ndie Datenbank.",[25,26,28],"h2",{"id":27},"gibt-es-im-supabase-gratis-tarif-backups","Gibt es im Supabase Gratis-Tarif Backups?",[10,30,31],{},"Nein. Der Gratis-Tarif legt überhaupt keine an, und es gibt keine Einstellung,\ndie sie einschaltet. Automatische tägliche Backups beginnen im Pro-Tarif, und\nPoint-in-Time-Recovery ist ein kostenpflichtiges Zusatzpaket darüber.",[10,33,34,35,40],{},"Auf welchem Tarif du bist, ist die Tatsache, von der hier alles andere abhängt,\nund ",[36,37,39],"a",{"href":38},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","das ist in zwei Minuten nachgesehen",".\nWenn du im Gratis-Tarif bist, ist die einzige Kopie deiner Daten eine, die du\ngemacht hast. Der Rest dieses Artikels handelt davon, wie du heute eine machst.",[25,42,44],{"id":43},"die-schnellste-kopie-exportiere-deine-tabellen-als-csv","Die schnellste Kopie: exportiere deine Tabellen als CSV",[10,46,47],{},"Öffne den Table Editor, wähle eine Tabelle und benutze die Export-Schaltfläche\nüber dem Raster. Sie bietet an, jede Zeile als CSV-Datei herunterzuladen, und\ndiese Datei landet wie alles andere in deinem Download-Ordner.",[10,49,50],{},"Dann machst du es für die nächste Tabelle noch einmal, und für die danach. Der\nExport arbeitet immer nur an einer Tabelle, was üblicherweise unerwähnt bleibt:\nDu musst wissen, welche Tabellen deine App hat. Die Liste links im Table Editor\nist genau diese Liste, und es lohnt sich, sie vorher bis unten zu lesen.",[10,52,53],{},"Zehn Minuten Klicken bringen dir einen Ordner voller CSV-Dateien mit jeder\nZeile, die deine Nutzer angelegt haben. Als Weg, deine Daten heute Nachmittag\nnicht zu verlieren, sind das zehn gut angelegte Minuten. Was du am Ende hast,\nist eine Kopie der Zeilen, und nur der Zeilen.",[25,55,57],{"id":56},"was-die-csv-dateien-zurücklassen","Was die CSV-Dateien zurücklassen",[10,59,60],{},"Fünf Dinge, und keines davon ist eine Zeile. Eine CSV enthält den Inhalt einer\nTabelle und nichts darüber, wie diese Tabelle gebaut war. Was du bekommst, ist\nalso eine Liste dessen, was im Raum stand, ohne die Regale.",[62,63,64,77],"table",{},[65,66,67],"thead",{},[68,69,70,74],"tr",{},[71,72,73],"th",{},"Was zurückbleibt",[71,75,76],{},"Warum das zählt, wenn du die Daten zurückspielst",[78,79,80,89,97,105,117],"tbody",{},[68,81,82,86],{},[83,84,85],"td",{},"Die Beziehungen",[83,87,88],{},"Eine CSV weiß nicht, welche Tabelle zuerst geladen werden muss, also scheitert der Import oder es bleiben Zeilen zurück, die auf Verschwundenes zeigen",[68,90,91,94],{},[83,92,93],{},"Die Spaltentypen",[83,95,96],{},"Alles kommt als Text an, bis der neuen Datenbank jemand etwas anderes sagt, und eine leere Zelle und ein echtes NULL werden dasselbe",[68,98,99,102],{},[83,100,101],{},"Row-Level-Security-Regeln",[83,103,104],{},"Die Regeln, die entscheiden, wer was lesen darf, stehen nicht in der Datei, und eine ohne sie neu angelegte Tabelle ist entweder für alle zu oder für alle offen",[68,106,107,110],{},[83,108,109],{},"Deine Login-Konten",[83,111,112,113,116],{},"Sie sitzen in einem eigenen ",[17,114,115],{},"auth","-Schema, deshalb stehen sie im Table Editor nicht neben deinen eigenen Tabellen",[68,118,119,122],{},[83,120,121],{},"Alles, was deine Nutzer hochgeladen haben",[83,123,124],{},"Supabase Storage liegt außerhalb der Datenbank, also hat noch nie ein Export irgendeiner Tabelle eine Datei enthalten",[126,127],"diagram",{"alt":128,"caption":129,"src":130},"Links drei durch Linien verbundene Tabellen, daran eine Person und ein Vorhängeschloss. Rechts derselbe Inhalt als drei lose Blätter mit Haken, und unter einer Trennlinie die Verbindungen, das Schloss und die Person blass gezeichnet und durchgestrichen.","Die Zeilen kommen mit. Die Linien zwischen ihnen, die Regeln darauf und die Menschen, die sich einloggen, nicht.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fwhat-csv-leaves-behind-1600x780.png",[10,132,133,134,138],{},"Die letzte Zeile ist die, die Leute überrascht. Deine Datenbank hat immer nur\nden Pfad zu jeder hochgeladenen Datei gespeichert. Ein Ordner voller CSVs in\nein frisches Projekt geladen gibt dir also eine Tabelle voller Links zu\n",[36,135,137],{"href":136},"\u002Fblog\u002Fsupabase-storage-bucket-public","Dateien, die nicht da sind",".",[10,140,141],{},"Das macht den CSV-Weg nicht wertlos. Wenn du Angst vor einem falschen Löschen\nin einer Tabelle hast, ist eine CSV genau dieser Tabelle das Richtige, und ein\npaar hundert Zeilen über denselben Editor zurückzuspielen ist eine Aufgabe, die\ndu selbst erledigen kannst. Nur das ganze Projekt wieder aufbauen kann er\nnicht.",[10,143,144,145,138],{},"Wenn du ohnehin gerade auf deine Tabellen schaust: Unser kostenloser Scan liest\ndeine Website von außen und sagt dir, welche davon einem Fremden antworten. Er\ndauert etwa 20 Sekunden und braucht kein Konto:\n",[36,146,148],{"href":147},"\u002Fsecurity-scanner","App scannen",[25,150,152],{"id":151},"ein-echtes-backup-ohne-ein-terminal-zu-öffnen","Ein echtes Backup, ohne ein Terminal zu öffnen",[10,154,155,156,158],{},"Nimm einen Desktop-Datenbankclient. pgAdmin, TablePlus und DBeaver verbinden\nsich alle mit einem Connection String zu einem Supabase-Projekt, und alle drei\nhaben einen Backup- oder Dump-Befehl in einem Menü. Heraus kommt eine volle\n",[17,157,19],{},"-Datei, und du tippst dafür keinen einzigen Befehl.",[160,161,162,166,169,172],"ol",{},[163,164,165],"li",{},"Öffne in deinem Supabase-Dashboard Connect und kopiere einen Connection\nString. Wenn der direkte die Verbindung verweigert, nimm den Session-Pooler-\nString, den auch Supabase in seiner eigenen Wiederherstellungsanleitung\nbenutzt.",[163,167,168],{},"Füge ihn im Client als neue Verbindung ein, zusammen mit deinem\nDatenbankpasswort.",[163,170,171],{},"Such den Backup-Befehl. In pgAdmin klickst du die Datenbank mit rechts an\nund wählst Backup; in TablePlus und DBeaver sitzt er unter einem Export-\noder Dump-Menü.",[163,173,174],{},"Speichere die Datei irgendwo, das nicht nur dein Laptop ist.",[176,177,179],"callout",{"type":178},"warn",[10,180,181,185,186,188,189,191],{},[182,183,184],"strong",{},"Der Fehler, in den du am ehesten läufst."," Diese Werkzeuge sichern nichts\nselbst. Sie rufen das Standard-Postgres-Programm ",[17,187,19],{}," auf deinem Rechner\nauf, und das weigert sich, gegen einen Server zu laufen, der neuer ist als es\nselbst, mit einer Meldung über einen Abbruch wegen einer Versionsabweichung des\nServers. Die Lösung ist, den Client auf ein neueres ",[17,190,19],{}," zu zeigen (in\npgAdmin ist das ein Binary-Pfad in den Einstellungen) oder lokal ein neueres\nPostgres zu installieren. Es ist eine ärgerliche halbe Stunde, und du machst\nsie einmal.",[126,193],{"alt":194,"caption":195,"src":196},"Ein Terminalfenster und ein Desktop-Anwendungsfenster, deren zwei Wege sich an einem Punkt treffen und als ein Pfeil in eine einzige gespeicherte Datei weiterlaufen.","Beide Wege bitten Postgres um dasselbe und erzeugen dieselbe Datei. Bei einem musst du sie tippen.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fone-file-two-ways-1600x560.png",[10,198,199,200,204],{},"Diese Datei enthält den Raum und die Regale: Tabellen, Spalten, Typen, Indizes,\nFunktionen und deine Row-Level-Security-Regeln. Von den Wegen, die dir im\nGratis-Tarif offenstehen, ist sie der einzige, der das Projekt woanders wieder\naufbauen kann, in einem anderen Konto, an einem Tag, an dem du in dieses hier\nnicht mehr hineinkommst. Das Zurücklesen ist eine eigene Aufgabe, und\n",[36,201,203],{"href":202},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","wie man ein Supabase-Backup wiederherstellt","\ngeht durch, was eine Wiederherstellung ersetzt und was sie hinter sich kaputt\nlässt.",[25,206,208],{"id":207},"wohin-die-datei-gehört-und-wie-oft","Wohin die Datei gehört, und wie oft",[10,210,211,212,216],{},"Irgendwohin, das nicht derselbe Laptop und nicht dasselbe Supabase-Konto ist.\nDas sind zwei verschiedene Ausfälle: Der Laptop deckt eine Festplatte ab, die\nstirbt, das Konto eine Karte, die abgelaufen ist, während du weg warst, ein\ngesperrtes Projekt, einen Login, den niemand wiederherstellen kann. Eine Kopie\nim Konto liegt hinter derselben Tür wie das, was sie schützen sollte, und genau\ndas vergleicht\n",[36,213,215],{"href":214},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","drei Wege, eine Supabase-Datenbank zu sichern","\nWeg für Weg.",[10,218,219],{},"Zur Häufigkeit: Frag dich, wie viel du bereit wärst, noch einmal einzutippen.\nEinen Tag Anmeldungen zu verlieren ist ärgerlich, eine Kopie pro Nacht deckt\ndas ab. Eine Stunde Bestellungen zu verlieren heißt, Leuten Geld\nzurückzuzahlen, und dafür ist nächtlich schon zu langsam.",[10,221,222],{},"Lade dann eine deiner Kopien in ein Wegwerf-Supabase-Projekt und öffne deine\nApp dagegen. Das ist der einzige Schritt hier, der dir sagt, ob die Datei etwas\ntaugt, und er kostet etwa eine halbe Stunde.",[25,224,226],{"id":225},"wenn-du-das-lieber-nicht-von-hand-machst","Wenn du das lieber nicht von Hand machst",[10,228,229],{},"Dann muss etwas anderes die Kopie für dich ziehen und sie danach prüfen. Genau\ndas macht Reeve Care.",[126,231],{"alt":232,"caption":233,"src":234},"Eine Reeve-Care-Tafel mit zwei Reihen. In der ersten verlässt eine Kopie der Datenbank den gestrichelten Umriss des Supabase-Kontos, wiederholt sich nach Zeitplan und läuft unter einer Lupe durch. In der zweiten reist dieselbe Datei zurück in das Konto.","Eine Kopie verlässt dein Supabase-Konto nach Zeitplan, wird gegengelesen, bevor sie zählt, und geht den anderen Weg an dem Tag, an dem du sie brauchst.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcare-backup-cycle-1600x520.png",[236,237,238,241,244,247,250],"ul",{},[163,239,240],{},"Es läuft nach Zeitplan, je nach Tarif mehrmals täglich, ob sich jemand daran\nerinnert oder nicht.",[163,242,243],{},"Die Kopie ist verschlüsselt und liegt außerhalb deines Supabase-Kontos, das\nKonto zu verlieren nimmt die Backups also nicht mit.",[163,245,246],{},"Jede Kopie wird zurückgelesen und gegen das gezählt, was hineinging. Das\nDatum in deinem Dashboard ist die letzte Kopie, die diese Prüfung bestanden\nhat, nie der letzte Versuch.",[163,248,249],{},"Wiederherstellen ist ein Knopf, und vorher wird ein Stand des Jetzt gesichert,\ndamit auch die Wiederherstellung ein Rückgängig hat.",[163,251,252],{},"Deine hochgeladenen Dateien werden ebenfalls kopiert, sobald du deine\nStorage-Buckets verbindest.",[10,254,255,256,260,261,265],{},"Lass an dem Tag, an dem du auf einen bezahlten Tarif wechselst, auch die\nBackups von Supabase selbst eingeschaltet. Zwei Kopien an zwei Orten sind die\nganze Idee. Was jeder Tarif enthält, steht in der\n",[36,257,259],{"href":258},"\u002F#pricing","Care-Preistabelle",", und die Kopie, die Prüfung und die\nWiederherstellung sind Schritt für Schritt auf der\n",[36,262,264],{"href":263},"\u002Fsupabase-backups","Supabase-Backup-Seite"," aufgezeichnet.",[25,267,269],{"id":268},"was-du-diese-woche-tun-solltest","Was du diese Woche tun solltest",[271,272,273],"key-takeaways",{},[236,274,275,278,281,284,287],{},[163,276,277],{},"Stell fest, auf welchem Tarif dein Projekt läuft. Im Gratis-Tarif wird nichts für dich kopiert, und alles andere hier folgt daraus.",[163,279,280],{},"Exportiere deine Tabellen heute als CSV, wenn du nur zehn Minuten hast. Eine halbe Kopie schlägt keine Kopie.",[163,282,283],{},"Zieh diese Woche einen vollen Dump über einen Desktop-Client und leg die Datei irgendwohin, das nicht dein Laptop ist.",[163,285,286],{},"Sichere deine Storage-Dateien getrennt. Kein Datenbank-Backup enthält sie, auf keinem Weg.",[163,288,289],{},"Lade eine Kopie in ein Wegwerf-Projekt, damit das erste Mal, dass du diese Datei liest, nicht der Tag ist, an dem du sie brauchst.",[10,291,292,293,297],{},"Mach den CSV-Export, bevor du diesen Tab schließt. Es ist die kleinste\nbrauchbare Sache auf der Liste, und sie funktioniert in dem Tarif, in dem du\nschon bist. Die ",[36,294,296],{"href":295},"\u002Fchecklist","10-Minuten-Sicherheitscheckliste"," deckt Backups\nzusammen mit dem Rest ab, was bei einer frisch gestarteten App zu prüfen ist.",{"title":299,"searchDepth":300,"depth":300,"links":301},"",3,[302,304,305,306,307,308,309],{"id":27,"depth":303,"text":28},2,{"id":43,"depth":303,"text":44},{"id":56,"depth":303,"text":57},{"id":151,"depth":303,"text":152},{"id":207,"depth":303,"text":208},{"id":225,"depth":303,"text":226},{"id":268,"depth":303,"text":269},"Backups","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcover-1200x630.png","Eine Datenbank, eine daraus entnommene Tabelle und am Ende eines Pfeils ein kleiner Stapel gespeicherter Dateien.","Im Supabase Gratis-Tarif gibt es keine Backups, die Kopie musst du selbst machen. Wie das im Dashboard geht und was der CSV-Weg auslässt.",false,"md",[317,320,323,326,329],{"q":318,"a":319},"Kann ich im Gratis-Tarif ein Backup aus dem Supabase-Dashboard herunterladen?","Nein. Die Backup-Seite ist eine Funktion der bezahlten Tarife, und im Gratis-Tarif steht dort nichts zum Herunterladen, weil nie etwas gesichert wurde. Herunterladen kannst du deine eigenen Daten: Der Table Editor exportiert jede Tabelle als CSV-Datei, und ein Desktop-Datenbankclient, der mit deinem Projekt verbunden ist, schreibt dir einen vollen Dump. Beides sind Dinge, die du tust, statt Dinge, die von selbst passieren.",{"q":321,"a":322},"Ist ein CSV-Export ein Backup?","Ein halbes. Eine CSV-Datei enthält die Zeilen einer Tabelle und nichts darüber, wie diese Tabelle gebaut war. Daraus lässt sich also eine Tabellenkalkulation wiederherstellen, keine Datenbank. Es fehlen: die Beziehungen zwischen den Tabellen, die Spaltentypen, deine Row-Level-Security-Regeln, deine Login-Konten und jede Datei, die deine Nutzer hochgeladen haben. Um eine Tabelle zurückzuholen, die jemand versehentlich geleert hat, ist es genau das Richtige. Um ein Projekt neu aufzubauen, reicht es nicht.",{"q":324,"a":325},"Wie sichere ich meine Supabase-Auth-Nutzer?","Deine Login-Konten liegen in einem eigenen Datenbankschema namens auth. Deshalb tauchen sie im Table Editor nie neben deinen eigenen Tabellen auf und landen nie in einer CSV davon. Ein voller Dump kann dieses Schema mitnehmen. Diese Konten in einem anderen Projekt wieder zum Laufen zu bringen, beschreibt Supabase als eigene Aufgabe mit eigenen Schritten und nicht als etwas, das mit deinen Tabellen einfach mitreist. Lies das, bevor du es brauchst, und nicht mittendrin.",{"q":327,"a":328},"Mein Projekt ist pausiert. Komme ich trotzdem an meine Daten?","Setze es erst fort. Supabase pausiert Gratis-Projekte nach einer Zeit mit wenig Aktivität, und ein pausiertes Projekt beantwortet jede Anfrage mit einem Fehler, bis du es im Dashboard wieder startest. Eine Pause ist keine Löschung. Sobald das Projekt wieder läuft, funktionieren beide Wege aus diesem Artikel normal, und eine Kopie zu ziehen ist dann das Naheliegendste.",{"q":330,"a":331},"Soll ich nicht einfach auf Pro wechseln?","Das ist der billigste Weg zu einer automatischen täglichen Kopie, und er lohnt sich. Er ersetzt es nicht, selbst eine Kopie zu halten, denn die Kopien von Supabase liegen im Supabase-Konto. Das deckt den Tag ab, an dem du deine eigenen Daten kaputt machst, und nicht den Tag, an dem du den Zugang zum Konto verlierst. Wenn echte Kunden in deiner App sind, lautet die Antwort meistens: beides.","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",[334,335,336,337,338,339],"supabase gratis tarif backups","supabase backup kostenlos","supabase datenbank exportieren","supabase backup ohne cli","supabase datenbank herunterladen","backup supabase gratis plan",{},true,"Supabase Gratis-Tarif: Backup ohne Terminal","\u002Fblog\u002Fback-up-supabase-free-tier","2026-08-30",{"title":5,"description":313},"blog\u002Fback-up-supabase-free-tier",[348,349,350],"Im Supabase Gratis-Tarif gibt es keine Backups. Nichts wird nach Zeitplan irgendwohin kopiert, also ist die einzige Kopie deiner Daten eine, die du gemacht hast.","Das Dashboard exportiert eine Tabelle mit ein paar Klicks als CSV. Das holt deine Zeilen heraus und lässt die Struktur zurück: Beziehungen, Typen, Regeln, Logins, Dateien.","Für eine Kopie, die das Projekt wieder aufbauen kann, macht ein Desktop-Datenbankclient per Mausklick einen vollen Dump. Ganz ohne Terminal.","RoPGdicXxZUYRzzpuVmmVD2yDNmuMmYX3dPjQBzqkDU",[353,359,366,372,378,384,390,396,402,408,414,420,426,432,438,444,450,456,462,468,474,480,486,492,498,499,505,511,517,523,529,534,539,545,551,557,562,568,573,579,584,589],{"path":354,"title":355,"description":356,"published":357,"category":310,"image":358,"draft":314},"\u002Fblog\u002Fsupabase-backup-auth-users","Warum in deinem Supabase-Dump keine Nutzer stehen","Führe supabase db dump allein aus und du bekommst die Form deiner Datenbank und keine einzige Zeile, und das auth-Schema mit deinen Nutzern fehlt ganz.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":360,"title":361,"description":362,"published":363,"category":364,"image":365,"draft":314},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domain abgelaufen, Website offline: was jetzt passiert","Deine Domain ist abgelaufen und deine Website ist offline. Welche Frist jetzt läuft, warum das Zertifikat das kleinere Problem ist, und wie du beides prüfst.","2026-09-22","Sicherheitsgrundlagen","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":367,"title":368,"description":369,"published":370,"category":364,"image":371,"draft":314},"\u002Fblog\u002Fis-lovable-safe","Ist Lovable sicher? Was 18.554 echte Lovable-Apps zeigten","Ist Lovable sicher? Wir haben 18.554 laufende Lovable-Apps mit neun Checks geprüft. Die Plattform war die sauberste von fünf. Die Funde saßen in den Apps.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":373,"title":374,"description":375,"published":376,"category":364,"image":377,"draft":314},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Die Sicherheits-Checkliste für Vibe-Coding, in neun Prüfungen","Eine Sicherheits-Checkliste für Vibe-Coding mit neun Punkten, die jeder von außen an deiner Live-App nachprüfen kann, jeder mit einem Test in einer Zeile.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":379,"title":380,"description":381,"published":382,"category":364,"image":383,"draft":314},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Ein geheimer Stripe-Schlüssel im Frontend kann Geld bewegen","Ein geheimer Stripe-Schlüssel im Frontend kann erstatten, abbuchen und jeden Kundendatensatz lesen, den du hast. Dein pk_live_-Schlüssel gehört dorthin.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":385,"title":386,"description":387,"published":388,"category":364,"image":389,"draft":314},"\u002Fblog\u002Fvite-and-next-public-env-vars","Vite-Env-Variablen offengelegt: der Präfix heißt veröffentlichen","Vite-Env-Variablen offengelegt: Deine App hat getan, was der Präfix verlangt. VITE_ und NEXT_PUBLIC_ heißen veröffentlichen, und die KI kannte den Preis nie.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":391,"title":392,"description":393,"published":394,"category":364,"image":395,"draft":314},"\u002Fblog\u002Fbase44-source-maps","Base44-Sicherheit: was ein Scan meldet und was du ändern kannst","Base44-Sicherheit auf 5.438 gescannten Apps: Drei Befunde auf fast jeder gehören der Plattform, die Source Map ist das Base44-Badge, und deine Liste ist kurz.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":397,"title":398,"description":399,"published":400,"category":364,"image":401,"draft":314},"\u002Fblog\u002Fis-cursor-ai-safe","Ist Cursor AI sicher? Editor, Code und die App, die du veröffentlichst","Ist Cursor AI sicher? Drei Fragen in einer Suche: was Cursor behält, was sein Code falsch macht und ob deine veröffentlichte App offen steht.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":403,"title":404,"description":405,"published":406,"category":364,"image":407,"draft":314},"\u002Fblog\u002Fis-replit-safe","Ist Replit sicher? Was wir in 3.042 Replit-Apps gefunden haben","Ist Replit sicher? Wir haben 3.042 laufende Replit-Apps mit neun externen Checks geprüft. Die Funde saßen in der veröffentlichten App, nicht im Hosting.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":409,"title":410,"description":411,"published":412,"category":310,"image":413,"draft":314},"\u002Fblog\u002Fsupabase-storage-backup","Supabase Storage Backup: deine Datenbankkopie hat keine Dateien","Ein Supabase Storage Backup ist eine eigene Aufgabe. Datenbank-Backups enthalten die Liste deiner Dateien und keine davon, also bleibt jeder Upload kaputt.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":415,"title":416,"description":417,"published":418,"category":310,"image":419,"draft":314},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Supabase Point-in-Time Recovery: Kosten und Grenzen","Supabase Point-in-Time Recovery spult deine Datenbank auf jede Sekunde der letzten Woche zurück. $100 im Monat zusätzlich zu Pro, und nur die Datenbank.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":421,"title":422,"description":423,"published":424,"category":310,"image":425,"draft":314},"\u002Fblog\u002Fsupabase-project-paused-recover","Supabase-Projekt pausiert? Deine Daten sind noch da","Supabase hat dein Projekt nach einer Woche ohne Aktivität pausiert. Gelöscht ist nichts, Wiederherstellen steht neben dem Namen, und du hast ein Jahr.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":427,"title":428,"description":429,"published":430,"category":364,"image":431,"draft":314},"\u002Fblog\u002Fsafest-ai-app-builder","Welcher KI-App-Builder ist am sichersten? 30.998 Apps im Test","Welcher KI-App-Builder ist am sichersten? Wir haben 30.998 aktive Apps von Lovable, Base44, Replit, v0 und Bolt gescannt. Der Builder entscheidet das nicht.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":433,"title":434,"description":435,"published":436,"category":364,"image":437,"draft":314},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Row Level Security für jede Supabase-Tabelle aktivieren und prüfen","Row Level Security in Supabase ohne Policy sperrt eine Tabelle komplett. Eine Policy ohne den Schalter bringt gar nichts. Hier ist das SQL, und der Test.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":439,"title":440,"description":441,"published":442,"category":364,"image":443,"draft":314},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": was die Warnung übersieht","Supabase meldet \"RLS disabled in public\" als Fehler. Zur Lese-Policy, die deine Tabelle genauso offen lässt, sagt der Advisor gar nichts.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":445,"title":446,"description":447,"published":448,"category":364,"image":449,"draft":314},"\u002Fblog\u002Frotate-supabase-service-role-key","Geleakten Supabase-service_role-Schlüssel richtig tauschen","Supabase sagt: erst das Leck schließen. Andere Anleitungen: sofort tauschen. Was richtig ist, hängt davon ab, wohin dein service_role-Schlüssel gelangt ist.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":451,"title":452,"description":453,"published":454,"category":364,"image":455,"draft":314},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Vibe-Coding-Security-Scanner im Vergleich, unserer eingeschlossen","Der beste Vibe-Coding-Security-Scanner hängt an drei Fragen, die keine Funktionsliste beantwortet. Zehn Tools im Vergleich, mit Preisen und unseren Lücken.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":457,"title":458,"description":459,"published":460,"category":364,"image":461,"draft":314},"\u002Fblog\u002Fsupabase-security-checker","Supabase Security Checker: die fünf Prüfungen selbst machen","Ein Supabase Security Checker liest deine veröffentlichte App statt deiner Projekteinstellungen. Hier sind die fünf Prüfungen und wie du jede selbst ausführst.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":463,"title":464,"description":465,"published":466,"category":364,"image":467,"draft":314},"\u002Fblog\u002Fvibe-coding-security-scanner","Vibe-Coding-Security-Scanner: was ein URL-Scan übersieht","Ein Vibe-Coding-Security-Scanner liest deine laufende App von außen. Was das abdeckt, die vier Dinge, die er nicht sehen kann, und wie du das Ergebnis liest.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":469,"title":470,"description":471,"published":472,"category":364,"image":473,"draft":314},"\u002Fblog\u002Fmissing-security-headers","Fehlende Sicherheitsheader: wann sie wirklich zählen","Fehlende Sicherheitsheader ist unser häufigster Befund. Wogegen sie schützen, und wann sie die unwichtigste Zeile in deinem Bericht sind.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":475,"title":476,"description":477,"published":478,"category":364,"image":479,"draft":314},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Dein OpenAI-API-Schlüssel liegt im Frontend. Tausch ihn aus.","Ein OpenAI-API-Schlüssel im Frontend lässt sich an keine Domain binden. Tausch ihn heute, leg den Aufruf hinter deinen Server und begrenze das Budget.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":481,"title":482,"description":483,"published":484,"category":364,"image":485,"draft":314},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","API-Schlüssel im Frontend: was 30.998 Apps wirklich ausliefern","Ein API-Schlüssel im Frontend ist meistens ein Google-Maps-Schlüssel. Wir haben 30.998 aktive Vibe-Coding-Apps gescannt und gezählt, was wirklich austritt.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":487,"title":488,"description":489,"published":490,"category":310,"image":491,"draft":314},"\u002Fblog\u002Fsupabase-backup-tools-compared","Supabase-Backup-Tools im Vergleich, unseres eingeschlossen","Vier Arten von Supabase-Backup-Tool, was jedes wirklich kopiert und wann eine kostenlose GitHub Action jeden Anbieter schlägt, uns eingeschlossen.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":493,"title":494,"description":495,"published":496,"category":364,"image":497,"draft":314},"\u002Fblog\u002Freplit-secrets-explained","Secrets in Replit nutzen, und was trotzdem veröffentlicht wird","Secrets in Replit nutzen: anlegen, auslesen und die zwei Gründe beheben, warum undefined zurückkommt. Dazu die Schlüssel, die das Werkzeug nicht schützt.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":343,"title":5,"description":313,"published":344,"category":310,"image":332,"draft":314},{"path":500,"title":501,"description":502,"published":503,"category":364,"image":504,"draft":314},"\u002Fblog\u002Fis-supabase-secure","Ist Supabase sicher? Ja. Dein Projekt ist eine eigene Frage","Ist Supabase sicher? Die Plattform ist auditiert, verschlüsselt und pentestet. Supabase schreibt selbst auf, wo das aufhört und deine Einstellungen anfangen.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":506,"title":507,"description":508,"published":509,"category":364,"image":510,"draft":314},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Wo du deine Supabase API-Keys findest: anon, service_role, URL","Projekt-URL, anon-Schlüssel und service_role-Schlüssel liegen auf einer Seite im Dashboard. Wo sie ist, und welcher der vier Werte in deine App gehört.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":512,"title":513,"description":514,"published":515,"category":364,"image":516,"draft":314},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy in Supabase: was jetzt?","\"New row violates row-level security policy\" heißt, Supabase hat einen Schreibvorgang abgelehnt. Die schnelle Lösung öffnet die Tabelle wieder für alle.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":518,"title":519,"description":520,"published":521,"category":364,"image":522,"draft":314},"\u002Fblog\u002Fcors-wildcard-security-risk","Ist eine CORS-Wildcard ein Sicherheitsrisiko? Meist nicht.","Ist eine CORS-Wildcard ein Sicherheitsrisiko? Meist ist sie die Voreinstellung deines Builders und gibt nichts preis, was dein Server nicht ohnehin herausgab.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":524,"title":525,"description":526,"published":527,"category":310,"image":528,"draft":314},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Supabase Branching ist kein Backup. Es geht nur vorwärts.","Warum Supabase Branching kein Backup ist: Ein Branch startet ohne deine Daten, und ein Merge bringt nur das Schema. Wofür es gut ist und was stattdessen hilft.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":202,"title":530,"description":531,"published":532,"category":310,"image":533,"draft":314},"Supabase-Backup wiederherstellen, und was danach kaputt ist","Wie du ein Supabase-Backup aus dem Dashboard oder aus einer Dump-Datei wiederherstellst, was ersetzt wird und warum die App danach kaputt sein kann.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":136,"title":535,"description":536,"published":537,"category":364,"image":538,"draft":314},"Dein Supabase-Storage-Bucket ist öffentlich. Ist das ein Problem?","Ein öffentlicher Supabase-Storage-Bucket heißt: Wer die URL einer Datei hat, kann sie öffnen. Er heißt nicht, dass jemand den Inhalt auflisten darf.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":540,"title":541,"description":542,"published":543,"category":364,"image":544,"draft":314},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Ist ein Google-API-Schlüssel im Frontend ein Problem?","Ein Google-API-Schlüssel im Frontend ist der Fund unseres Scanners Nummer eins, und meistens unbedenklich. Eine kostenlose Einstellung entscheidet darüber.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":546,"title":547,"description":548,"published":549,"category":310,"image":550,"draft":314},"\u002Fblog\u002Fai-agent-deleted-my-database","Ein KI-Agent hat meine Supabase-Daten gelöscht. Was hole ich zurück?","Ein KI-Agent hat Daten aus deiner Datenbank gelöscht. Was du zurückholst, stand schon vorher fest, und die nächsten Minuten entscheiden über den Rest.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":552,"title":553,"description":554,"published":555,"category":364,"image":556,"draft":314},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Kann jeder deine Supabase-Datenbank lesen? 3.680 Apps im Test","Kann jeder deine Supabase-Datenbank ohne Login lesen? Wir haben 30.998 aktive Apps aus KI-Buildern gescannt und gemessen, wie oft die Antwort ja lautet.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":558,"title":559,"description":560,"published":555,"category":364,"image":561,"draft":314},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source-Maps öffentlich: deine App veröffentlicht ihren Quellcode","Eine öffentliche Source-Map lässt jeden den Originalcode deiner App lesen, Kommentare inklusive. Der 30-Sekunden-Check, und was wirklich zählt.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":563,"title":564,"description":565,"published":566,"category":364,"image":567,"draft":314},"\u002Fblog\u002Fsupabase-new-api-keys","Supabases neue API-Schlüssel: welcher gehört in deine App?","Supabase hat anon und service_role durch öffentliche und geheime Schlüssel ersetzt. Welcher gehört in deine App, und welcher nie?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":38,"title":569,"description":570,"published":571,"category":310,"image":572,"draft":314},"Sichert Supabase meine Datenbank? Das hängt von deinem Tarif ab.","Sichert Supabase deine Datenbank? Auf bezahlten Tarifen täglich, im Gratis-Tarif gar nicht. So findest du heraus, was du hast und was es nicht abdeckt.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":574,"title":575,"description":576,"published":577,"category":364,"image":578,"draft":314},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Supabase Row Level Security ist an. Die Tabelle ist trotzdem offen.","Supabase Row Level Security anzuschalten schützt keine Tabelle. Erst deine Policies tun das, und die, die deine App repariert hat, lässt oft alle herein.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":580,"title":581,"description":582,"published":577,"category":310,"image":583,"draft":314},"\u002Fblog\u002Fversion-history-is-not-a-backup","Der Versionsverlauf ist kein Backup. Er holt keine Tabelle zurück.","Lovable und Bolt führen einen Versionsverlauf für deinen Code. Deine Datenbank ist ein eigener Dienst, und ein Rücksprung holt deine Daten nicht zurück.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":214,"title":585,"description":586,"published":587,"category":310,"image":588,"draft":314},"Drei Wege, eine Supabase-Datenbank zu sichern, und was fehlt","Das Dashboard, pg_dump und ein verwalteter Dienst. Was jeder Weg wirklich sichert, was er stillschweigend auslässt und welcher den Kontoverlust übersteht.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":590,"title":591,"description":592,"published":587,"category":364,"image":593,"draft":314},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Welche API-Schlüssel im Frontend sicher sind, und welche nicht","Dein Supabase-anon-Schlüssel darf öffentlich sein. Der service_role-Schlüssel nicht. Er ignoriert jede Regel, die du setzt. So erkennst du den Unterschied.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1790150951364]