[{"data":1,"prerenderedAt":801},["ShallowReactive",2],{"blog-de-supabase-project-paused-recover":3,"blog-index-de":454},{"id":4,"title":5,"body":6,"category":407,"cover":408,"coverAlt":409,"description":410,"draft":411,"extension":412,"faq":413,"image":431,"keywords":432,"meta":440,"navigation":441,"ogTitle":442,"path":443,"published":444,"seo":445,"stem":446,"tldr":447,"updated":452,"__hash__":453},"blog_de\u002Fblog\u002Fsupabase-project-paused-recover.md","Supabase-Projekt pausiert? Deine Daten sind noch da",{"type":7,"value":8,"toc":393},"minimark",[9,13,16,19,24,27,30,41,45,48,51,54,58,61,64,98,101,109,113,116,125,131,134,138,141,144,153,221,224,229,232,236,239,247,250,263,267,270,273,284,292,296,321,325,328,333,365,372,385],[10,11,12],"p",{},"Deine App antwortet nicht mehr. Jede Anfrage kommt als Fehler zurück, und wenn\ndu dein Supabase-Dashboard öffnest, steht neben dem Projektnamen das Wort\nPaused, mit einem Wiederherstellen-Knopf dort, wo sonst die Panels sind. Nichts,\nwas du deployt hast, hat das ausgelöst, und gewarnt hat dich auch nichts.",[10,14,15],{},"Hier gehen die beiden üblichen Antworten schief. Die eine sagt, deine Datenbank\nsei weg, was nie gestimmt hat. Die andere sagt, entspann dich, ein wegen\nInaktivität pausiertes Supabase-Projekt hält seine Daten ja noch alle, also\ndrück auf Wiederherstellen und mach weiter. Das stimmt heute und hört an einem\nDatum, das niemand erwähnt, still auf zu stimmen.",[10,17,18],{},"Stell dir das Projekt als Lagerbox vor. Die Miete ist ausgeblieben, also ist das\nLicht aus und die Tür zu. Deine Kisten stehen drin, genau so, wie du sie\nabgestellt hast. Da steht dein Projekt gerade, und es gibt ein Datum, nach dem\ndie Box geräumt wird.",[20,21,23],"h2",{"id":22},"ist-ein-pausiertes-supabase-projekt-gelöscht","Ist ein pausiertes Supabase-Projekt gelöscht?",[10,25,26],{},"Nein. Das Projekt ist angehalten, und Anhalten ist kein Entfernen. Deine\nTabellen, deine Zeilen, deine Row-Level-Security-Regeln und die Dateien, die\ndeine Nutzer hochgeladen haben, liegen alle weiter auf der Platte. Abgeschaltet\nist die Datenbank davor, und deshalb bekommt deine App auf jede Anfrage einen\nFehler.",[10,28,29],{},"Dieser Abstand macht die Panik nachvollziehbar. Von außen ist die App kaputt,\nwie eine App eben kaputt ist, wenn ihre Datenbank fehlt: leere Listen, Ladebalken,\ndie nie fertig werden, ein Fehler bei jedem Speichern. Vom Dashboard aus ist es\nein Projekt mit einem Knopf darauf.",[10,31,32,33,40],{},"Supabase pausiert Projekte im Gratis-Tarif und nur dort. Nach eigener Aussage\nkönnen Anwendungen im Gratis-Tarif pausiert werden, die über sieben Tage wenig\nAktivität zeigen, um Serverressourcen zu sparen, und bezahlte Projekte werden\nwegen Inaktivität überhaupt nicht pausiert. Ihre\n",[34,35,39],"a",{"href":36,"rel":37},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Ffree-project-pausing",[38],"nofollow","Seite zum Pausieren","\nist die, die du lesen solltest, denn alles Weitere hier hängt an Zahlen, die\nihnen gehören.",[20,42,44],{"id":43},"warum-hat-supabase-mein-projekt-pausiert","Warum hat Supabase mein Projekt pausiert?",[10,46,47],{},"Weil etwa eine Woche lang niemand mit ihm gesprochen hat.",[10,49,50],{},"Aktivität heißt Anfragen. Das Projekt im Dashboard zu öffnen zählt. Deine App,\ndie die Datenbank aufruft, zählt. Was nicht zählt, ist die bloße Existenz deiner\nApp. Ein Projekt, das letzten Monat gestartet ist und noch keine Besucher\ngefunden hat, ist deshalb genau die Form, die pausiert wird. Es trifft fast nie\ndie vielbesuchten Apps.",[10,52,53],{},"Der Gratis-Tarif erlaubt außerdem zwei aktive Projekte gleichzeitig, und\npausierte zählen nicht mehr gegen dieses Limit. Ein Projekt, das du absichtlich\ngeparkt hast, und eines, das von selbst stehen geblieben ist, sehen im Dashboard\nalso gleich aus, und beide laufen jetzt gegen dieselbe Jahresuhr.",[20,55,57],{"id":56},"wie-stelle-ich-ein-pausiertes-supabase-projekt-wieder-her","Wie stelle ich ein pausiertes Supabase-Projekt wieder her?",[10,59,60],{},"Dashboard öffnen, Projekt auswählen, auf Wiederherstellen drücken. Innerhalb des\nFensters ist das die ganze Prozedur, und es sind ein paar Minuten Warten statt\neiner Migration.",[10,62,63],{},"Zurück kommt das Projekt, das du hattest. Dieselbe Projekt-Kennung, also\ndieselbe API-URL. Dieselben Tabellen, dieselben Regeln, dieselben\nStorage-Buckets. Supabase startet Gratis-Projekte dabei auf der neuesten\nPostgres-Nebenversion, was dir nicht auffallen wird.",[10,65,66,67,71,72,75,76,81,82,84,85,88,89,92,93,97],{},"Die Schlüssel sind der Teil, der vielleicht nicht so zurückkommt, wie er war.\nSupabase hat gewarnt, dass Projekte, die seit dem 1. November 2025\nwiederhergestellt werden, die Legacy-Schlüssel ",[68,69,70],"code",{},"anon"," und ",[68,73,74],{},"service_role"," nicht\nmehr bekommen. ",[34,77,80],{"href":78,"rel":79},"https:\u002F\u002Fgithub.com\u002Forgs\u002Fsupabase\u002Fdiscussions\u002F29260",[38],"Nach Supabases eigenen\nWorten"," laufen\nwiederhergestellte pausierte Projekte Gefahr, kaputt zu sein, weil ihnen die\nLegacy-Schlüssel fehlen. Schickt deine App noch den älteren ",[68,83,70],{},"-Schlüssel,\neine lange Zeichenkette, die mit ",[68,86,87],{},"eyJ"," beginnt, rechne damit, dass ihre Anfragen\nabgelehnt werden, sobald das Projekt zurück ist. Die Lösung ist der Publishable\nKey des Projekts, der mit ",[68,90,91],{},"sb_publishable_"," beginnt, in den\nUmgebungseinstellungen deines Builders. ",[34,94,96],{"href":95},"\u002Fblog\u002Fsupabase-new-api-keys","Die beiden\nSchlüsselformate"," werden dort nebeneinander\nverglichen.",[10,99,100],{},"Mach danach eines, bevor du den Tab schließt: Zieh eine Kopie der Daten, solange\ndie Datenbank läuft. Ein pausiertes Projekt ist der eine Zustand, in dem du gar\nnichts exportieren kannst, und warum das heute besser ist als nächste Woche,\nsteht in der Uhr im nächsten Abschnitt.",[10,102,103,104,108],{},"Wenn deine App ohnehin wieder oben ist, lohnt sich auch ein Blick darauf, was\nsie einem Fremden zeigt. Unser kostenloser Scan liest deine Website von außen\nund sagt dir, was er findet. Er dauert etwa 20 Sekunden und braucht kein Konto:\n",[34,105,107],{"href":106},"\u002Fsecurity-scanner","App scannen",".",[20,110,112],{"id":111},"wie-lange-habe-ich-zeit-dafür","Wie lange habe ich Zeit dafür?",[10,114,115],{},"Ein Jahr ab dem Tag der Pause. Supabase formuliert es so: Nach dem Pausieren\ngibt es ein Jahr langes Fenster, in dem sich das Projekt auf der Plattform aus\nSupabase Studio wiederherstellen lässt.",[10,117,118,119,124],{},"Prüf diese Zahl nach, statt ihr zu vertrauen, denn sie hat sich schon einmal\nbewegt. Bei der\n",[34,120,123],{"href":121,"rel":122},"https:\u002F\u002Fsupabase.com\u002Fchangelog\u002F27497-paused-free-plan-projects-are-restorable-for-90-days",[38],"Einführung im Juni 2024","\nwaren es 90 Tage, und alles, was über pausierte Projekte geschrieben wurde, bevor\nSupabase das Fenster verbreitert hat, sagt weiterhin 90. Ihr eigener Hilfeartikel\nist das deutlichste Zeichen dafür: Auf der Seite steht ein Jahr, und in der URL,\nunter der sie liegt, stehen weiterhin 90 Tage.",[126,127],"diagram",{"alt":128,"caption":129,"src":130},"Ein Zeitstrahl. Er beginnt bei einem Pausezeichen, läuft durch ein langes hervorgehobenes Band mit einem Schlüssel darin und hinter dessen Ende weiter zu einer gespeicherten Datei und einem Eimer. Weiter hinten ein durchgestrichener leerer Umriss.","Innerhalb des Bandes gibt dir ein Knopf das Projekt zurück. Dahinter kannst du die Daten noch abholen, und noch weiter hinten ist nichts mehr abzuholen.","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fthe-restore-window-1600x520.png",[10,132,133],{},"Rechne das Datum aus und trag es dir ein, solange du ohnehin daran denkst. Es\nist ein Jahr ab dem Tag, an dem das Projekt pausiert hat, und das ist fast nie\nein Jahr ab dem Tag, an dem du es gemerkt hast.",[20,135,137],{"id":136},"es-gibt-keinen-wiederherstellen-knopf-was-jetzt","Es gibt keinen Wiederherstellen-Knopf. Was jetzt?",[10,139,140],{},"Du bekommst einen Download statt einer Wiederherstellung, und dieser Unterschied\nist größer, als er klingt.",[10,142,143],{},"Sobald das Fenster zu ist, ersetzt Supabase die Wiederherstellung durch zwei\nDinge zum Mitnehmen: das letzte logische Backup, angelegt unmittelbar vor der\nPause, und alle deine Storage-Objekte. Beides liegt auf der Übersichtsseite des\nProjekts. Deine Daten sind in diesen Dateien. Dein Projekt ist es nicht, und es\nkommt auch nicht zurück.",[10,145,146,147,152],{},"Supabase dokumentiert\n",[34,148,151],{"href":149,"rel":150},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Ftroubleshooting\u002Frestore-project-after-90-days-pause",[38],"die Migration, die dann ansteht",".\nEs sind fünf Schritte, und zusammen wollen sie einen Postgres-Client, die\nSupabase-CLI und ein Zugriffstoken für die Management API.",[154,155,156,169],"table",{},[157,158,159],"thead",{},[160,161,162,166],"tr",{},[163,164,165],"th",{},"Was du zurückbekommst",[163,167,168],{},"Wie es dorthin kommt",[170,171,172,189,197,205,213],"tbody",{},[160,173,174,178],{},[175,176,177],"td",{},"Tabellen, Zeilen, Spaltentypen, Indizes und Row-Level-Security-Regeln",[175,179,180,181,184,185,188],{},"In der ",[68,182,183],{},".backup","-Datei, mit ",[68,186,187],{},"psql"," in ein frisches Projekt eingespielt",[160,190,191,194],{},[175,192,193],{},"Die Dateien, die deine Nutzer hochgeladen haben",[175,195,196],{},"Getrennt von der Übersichtsseite geladen und dann mit der Supabase-CLI in die neuen Buckets kopiert",[160,198,199,202],{},[175,200,201],{},"Einstellungen für Auth, Realtime, Storage und API",[175,203,204],{},"Supabase veröffentlicht ein Skript, das sie über ihre Management API hinüberkopiert",[160,206,207,210],{},[175,208,209],{},"Erweiterungen, Datenbank-Webhooks und Realtime-Publikationen",[175,211,212],{},"Die schaltest du im neuen Projekt von Hand wieder ein",[160,214,215,218],{},[175,216,217],{},"Deine API-URL und deine Schlüssel",[175,219,220],{},"Die bekommst du nicht zurück. Ein neues Projekt hat eine neue Kennung, also ändern sich URL und Schlüssel mit, und alles, was die alten hält, muss nachgezogen werden",[10,222,223],{},"Die letzte Zeile ist die, von der Leute zu spät erfahren. Die Adresse, die deine\nApp benutzt hat, gehört zum Projekt, das du gerade verloren hast, also ist ein\nNeuaufbau nicht nur eine Datenaufgabe. Die Umgebungsvariablen in deinem Builder,\nalles, was du direkt in den Code geklebt hast, jeder Webhook, jeder\nZahlungsanbieter, jedes Analysewerkzeug, das auf die alte URL zeigt: Jedes davon\nist eine Stelle, an der die App bricht, nachdem die Daten längst sicher sind.",[126,225],{"alt":226,"caption":227,"src":228},"Zwei Bahnen. In der oberen wird ein pausiertes Projekt mit einem Schlüssel geöffnet und läuft als dasselbe Projekt weiter, die Verbindung zur App ungebrochen. In der unteren wird aus dem Projekt eine gespeicherte Datei und ein Eimer voller Dateien, die ein anderes Projekt speisen, und die Linie von der App dorthin ist gestrichelt und durchgestrichen.","Beide Bahnen enden mit deinen Zeilen in einer Datenbank. Nur eine endet damit, dass die App noch auf die richtige Stelle zeigt.","\u002Fblog\u002Fsupabase-project-paused-recover\u002Frestore-or-rebuild-1600x600.png",[10,230,231],{},"Danach kommt noch eine Zeile, und an der hängt keine Rettung mehr. Supabase\nschreibt es unverblümt: Sobald ein Projekt gelöscht ist, sind alle zugehörigen\nDaten samt Backups dauerhaft entfernt und nicht wiederherstellbar. Wenn dein\nDashboard dir gerade Downloads anbietet, hol sie jetzt.",[20,233,235],{"id":234},"legt-der-gratis-tarif-ein-backup-an-solange-mein-projekt-pausiert-ist","Legt der Gratis-Tarif ein Backup an, solange mein Projekt pausiert ist?",[10,237,238],{},"Es gibt genau eines, und es ist nicht das Sicherheitsnetz, das sich die meisten\ndarunter vorstellen.",[10,240,241,242,246],{},"Der Gratis-Tarif legt überhaupt keine geplanten Backups an. Nichts wird\nirgendwohin kopiert, solange dein Projekt läuft, was\n",[34,243,245],{"href":244},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","man besser weiß, bevor etwas schiefgeht",",\nund nicht mittendrin. Die Kopie, die im Dashboard auftaucht, wenn das Fenster\nzugeht, ist ein einzelnes logisches Backup aus dem Moment der Pause, und\nherunterladbar wird es genau an dem Punkt, an dem du nicht mehr wiederherstellen\nkannst.",[10,248,249],{},"Daraus folgen zwei Dinge. Die Kopie trägt das Datum des Tages, an dem dein\nProjekt stehen geblieben ist, was sich als unproblematisch erweist, weil ein\npausiertes Projekt seitdem keinen Schreibvorgang mehr angenommen hat. Und sie\nliegt im selben Konto wie das Projekt, aus dem sie stammt, hinter demselben\nLogin, von derselben Löschung erfasst. Sie steht in der Box, hinter derselben\nTür.",[10,251,252,253,257,258,262],{},"Der Moment für die eigene Kopie ist, während das Projekt wieder läuft.\n",[34,254,256],{"href":255},"\u002Fblog\u002Fback-up-supabase-free-tier","Eine im Dashboard ohne Terminal zu machen","\nist der Weg im Gratis-Tarif, und\n",[34,259,261],{"href":260},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","drei Wege, eine Supabase-Datenbank zu sichern","\nvergleicht, was jeder davon kostet.",[20,264,266],{"id":265},"wie-verhindere-ich-dass-es-wieder-pausiert","Wie verhindere ich, dass es wieder pausiert?",[10,268,269],{},"Gib dem Projekt alle paar Tage etwas zu beantworten, oder hol es aus dem\nGratis-Tarif.",[10,271,272],{},"Supabase zählt das Öffnen des Projekts im Dashboard und Anfragen aus deiner\nverbundenen Anwendung als Aktivität. Ein geplanter Job, der deine Datenbank\neinmal am Tag aufruft, hält den Zähler also wach, und ein kleiner Cron-Dienst\noder ein geplanter Workflow in deinem Code-Repository ist der übliche Weg, so\netwas einzurichten.",[274,275,277],"callout",{"type":276},"warn",[10,278,279,283],{},[280,281,282],"strong",{},"Ein Ping hält das Projekt wach und sonst nichts."," Er ist kein Backup, er sagt\ndir nichts darüber, wann deine App aus einem der vielen anderen Gründe bricht,\nund ein geplanter Job, der still aufgehört hat zu laufen, sieht genau aus wie\neiner, der noch läuft. Was da pingt, muss etwas sein, dessen Ausfall dir\nauffällt, sonst ist die erste Nachricht dasselbe Paused-Abzeichen, auf das du\ngerade schaust.",[10,285,286,287,291],{},"Ein Wechsel auf Pro nimmt die Frage weg, statt sie zu verwalten. Bezahlte\nProjekte werden nicht wegen Inaktivität pausiert, und im Pro-Tarif beginnen auch\ndie täglichen Backups von Supabase, mit einem Fenster von sieben Tagen. ",[34,288,290],{"href":289},"\u002Fblog\u002Fsupabase-free-plan-limits","Was Pro sonst noch ändert, Limit für Limit",", steht in einem eigenen Artikel.",[20,293,295],{"id":294},"was-du-diese-woche-tun-solltest","Was du diese Woche tun solltest",[297,298,299],"key-takeaways",{},[300,301,302,309,312,315,318],"ul",{},[303,304,305,306,308],"li",{},"Drück heute auf Wiederherstellen, wenn der Knopf da ist. Es sind ein paar Minuten, und es ist der einzige Weg, der deine URL behält. Nutzt deine App noch den älteren ",[68,307,70],{},"-Schlüssel, gib ihr den Publishable Key, sobald das Projekt zurück ist.",[303,310,311],{},"Wenn der Knopf weg ist, lade zuerst die Backup-Datei und deine Storage-Dateien herunter. Ein gelöschtes Projekt nimmt sie mit.",[303,313,314],{},"Zieh deine eigene Kopie der Datenbank, sobald das Projekt läuft, denn der Gratis-Tarif zieht keine für dich.",[303,316,317],{},"Stell etwas auf einen Timer, das dein Projekt aufruft, und sorg dafür, dass dir auffällt, wenn dieser Timer stehen bleibt.",[303,319,320],{},"Halte eine Kopie deiner Daten außerhalb deines Supabase-Kontos, wo weder eine Pause noch ein abgelaufenes Fenster noch eine Löschung sie erreicht.",[20,322,324],{"id":323},"wo-reeve-care-hineinpasst","Wo Reeve Care hineinpasst",[10,326,327],{},"Eine Pause ist ein Ausfall, der nicht wie einer aussieht. Deine Seiten laden\nweiter, weil dein Builder sie ausliefert; stehen geblieben ist alles dahinter.\nDas ist ein großer Teil der Antwort darauf, warum dir niemand Bescheid gesagt\nhat.",[126,329],{"alt":330,"caption":331,"src":332},"Eine Reeve-Care-Tafel mit zwei Reihen. In der ersten ist der gestrichelte Umriss eines Supabase-Kontos durchgestrichen, während gespeicherte Dateien mit Haken daneben außerhalb stehen. In der zweiten wird eine Website durch eine Lupe beobachtet und ein Alarm ausgelöst.","Die Kopien stehen außerhalb des Kontos, aus dem sie stammen. Die App wird ebenfalls von außen beobachtet, und eine Prüfung, die keine Antwort mehr bekommt, löst etwas aus.","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcare-outside-and-watching-1600x520.png",[300,334,335,341,347,353,359],{},[303,336,337,340],{},[280,338,339],{},"Ein pausiertes Projekt lässt sich nicht kopieren, und eine gescheiterte\nKopie schickt dir eine E-Mail."," Care verbindet sich nach eigenem Zeitplan mit\ndeiner Datenbank, statt darauf zu warten, dass deine App es merkt. Die Nacht,\nin der sie nicht mehr antwortet, ist also die Nacht, in der du davon erfährst.",[303,342,343,346],{},[280,344,345],{},"Die Kopie liegt außerhalb deines Supabase-Kontos."," Verschlüsselt, auf\nSpeicher, den wir halten, sodass ein pausiertes, abgelaufenes oder gelöschtes\nProjekt die Backups nicht mitnimmt.",[303,348,349,352],{},[280,350,351],{},"Jede Kopie wird gegengelesen, bevor sie zählt."," Das Datum in deinem\nDashboard ist das letzte Backup, das diese Prüfung bestanden hat, nie der\nletzte Versuch.",[303,354,355,358],{},[280,356,357],{},"Wiederherstellen ist ein Knopf",", und vorher wird ein Stand des Jetzt\ngesichert, damit auch die Wiederherstellung ein Rückgängig hat.",[303,360,361,364],{},[280,362,363],{},"Die Dateien, die deine Nutzer hochgeladen haben, werden ebenfalls kopiert",",\nsobald du deine Storage-Buckets verbindest. Das ist ein zweiter Schlüssel und\ner ist freiwillig, denn der Schlüssel, den Supabase für Storage ausgibt, kann\nnicht nur lesen, sondern auch schreiben, und wir fragen lieber getrennt danach,\nals ihn mit einem zu bündeln, der das nicht kann.",[10,366,367,368,371],{},"Zwei Grenzen, bevor du irgendetwas entscheidest. Care sichert heute\n",[280,369,370],{},"Supabase"," und sonst nichts, und wenn deine Daten woanders liegen, sagen wir\ndas vor dem Bezahlen und nicht danach. Und nichts davon hält ein Projekt vom\nPausieren ab: Die Pause passiert innerhalb von Supabase, wo wir ein Client sind\nwie jeder andere. Was sich ändert, ist, wo deine Daten an diesem Tag stehen.",[10,373,374,375,379,380,384],{},"Lass an dem Tag, an dem du auf einen bezahlten Tarif wechselst, auch die Backups\nvon Supabase selbst eingeschaltet. Zwei Kopien an zwei Orten sind die ganze\nIdee, und die günstigere von beiden steckt schon in deiner Rechnung. Was jeder\nTarif enthält, steht auf der ",[34,376,378],{"href":377},"\u002Fpricing","Preisseite",", und die Kopie, die Prüfung\nund die Wiederherstellung sind Schritt für Schritt auf der\n",[34,381,383],{"href":382},"\u002Fsupabase-backups","Supabase-Backup-Seite"," aufgezeichnet.",[10,386,387,388,392],{},"Bevor du diesen Tab schließt: Öffne dein Dashboard und schau nach, welchen der\nbeiden Knöpfe dein Projekt dir anbietet. Diese eine Tatsache entscheidet, ob\nheute fünf Minuten Warten oder ein Neuaufbau ist, und die\n",[34,389,391],{"href":390},"\u002Fchecklist","10-Minuten-Sicherheitscheckliste"," deckt Backups zusammen mit dem\nRest ab, was zu prüfen ist, sobald deine App wieder antwortet.",{"title":394,"searchDepth":395,"depth":395,"links":396},"",3,[397,399,400,401,402,403,404,405,406],{"id":22,"depth":398,"text":23},2,{"id":43,"depth":398,"text":44},{"id":56,"depth":398,"text":57},{"id":111,"depth":398,"text":112},{"id":136,"depth":398,"text":137},{"id":234,"depth":398,"text":235},{"id":265,"depth":398,"text":266},{"id":294,"depth":398,"text":295},{"id":323,"depth":398,"text":324},"Backups","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcover-1200x630.png","Ein Pausezeichen neben einem geschlossenen Projektkasten, in dem die Datenbank und die hochgeladenen Dateien weiter stehen.","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.",false,"md",[414,416,419,422,425,428],{"q":23,"a":415},"Nein. Eine Pause hält die Datenbank an, sie entfernt nichts. Deine Tabellen, Zeilen, Row-Level-Security-Regeln und hochgeladenen Dateien liegen alle weiter auf der Platte, und genau deshalb bietet dir das Dashboard einen Wiederherstellen-Knopf statt einer Entschuldigung. Kaputt macht die Pause deine App, weil jede Anfrage von ihr jetzt als Fehler zurückkommt.",{"q":417,"a":418},"Wie lange habe ich Zeit, ein pausiertes Supabase-Projekt wiederherzustellen?","Ein Jahr ab dem Tag der Pause. Supabase beschreibt es als ein Jahr langes Fenster, in dem sich das Projekt aus Supabase Studio zurückholen lässt. Diese Zahl hat sich schon einmal bewegt: Bei der Einführung im Juni 2024 waren es 90 Tage, und der Hilfeartikel, den Supabase dazu veröffentlicht, trägt bis heute 90 Tage in seiner URL. Lies den aktuellen Wert auf ihrer Seite zum Pausieren nach und nicht bei sonst jemandem.",{"q":420,"a":421},"Bei meinem Projekt gibt es keinen Wiederherstellen-Knopf. Was jetzt?","Das Fenster ist zu, und Supabase hat den Knopf gegen zwei Downloads getauscht: das letzte logische Backup, angelegt unmittelbar vor der Pause, und alle deine Storage-Dateien. Beides liegt auf der Übersichtsseite des Projekts. Deine Daten sind darin, und zurück zu einer laufenden App kommst du, indem du ein neues Projekt anlegst und beides dort einspielst. Lade beides heute herunter, denn ein gelöschtes Projekt nimmt seine Backups endgültig mit.",{"q":423,"a":424},"Bleiben meine Projekt-URL und meine API-Schlüssel gleich?","Wenn du innerhalb des Fensters auf Wiederherstellen drückst, bleibt die URL: Das Projekt kommt mit derselben Projekt-Kennung zurück, aus der deine URL gebaut ist. Die Schlüssel vielleicht nicht. Supabase hat gewarnt, dass Projekte, die seit dem 1. November 2025 wiederhergestellt werden, ohne die Legacy-Schlüssel anon und service_role zurückkommen, also braucht eine App, die noch den anon-Schlüssel nutzt, stattdessen den Publishable Key des Projekts. Wenn du in ein neues Projekt umziehen musst, ändert sich beides: Ein neues Projekt hat eine neue Kennung, also ändern sich die API-URL und jeder Schlüssel mit. Das heißt, die Umgebungsvariablen in deinem Builder anzupassen und alles andere, in dem die alte Adresse steht, samt Webhooks und Diensten von Dritten.",{"q":426,"a":427},"Wie verhindere ich, dass Supabase mein Projekt wieder pausiert?","Gib ihm mindestens einmal pro Woche etwas zu beantworten, oder hol es aus dem Gratis-Tarif. Supabase zählt das Öffnen des Dashboards und Anfragen aus deiner verbundenen Anwendung als Aktivität, also hält ein geplanter Job, der dein Projekt einmal am Tag aufruft, den Zähler wach. Ein Wechsel auf Pro nimmt die Frage ganz weg, denn bezahlte Projekte werden nicht wegen Inaktivität pausiert, und dort beginnen auch die täglichen Backups.",{"q":429,"a":430},"Mein Projekt ist aus dem Dashboard verschwunden, nicht pausiert. Bekomme ich es zurück?","Kläre zuerst, welcher Fall vorliegt, denn das sind zwei verschiedene Situationen. Ein pausiertes Projekt steht weiterhin in der Liste, mit Wiederherstellen neben dem Namen und den Daten eingefroren auf der Platte. Steht es gar nicht mehr da, bietet das Dashboard keine Funktion zum Rückgängigmachen: Es bleiben ein Support-Ticket bei Supabase und eine Kopie, die du selbst gemacht hast. Die zweite ist das ganze Argument dafür, ein Backup zu haben, bevor der Tag kommt.","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",[433,434,435,436,437,438,439],"supabase projekt pausiert","supabase gratis tarif pausiert","pausiertes supabase projekt wiederherstellen","supabase gelöschtes projekt wiederherstellen","supabase projekt fortsetzen","supabase 7 tage inaktiv","supabase projekt aktiv halten",{},true,"Supabase-Projekt pausiert? Was jetzt zu tun ist","\u002Fblog\u002Fsupabase-project-paused-recover","2026-09-12",{"title":5,"description":410},"blog\u002Fsupabase-project-paused-recover",[448,449,450,451],"Ein wegen Inaktivität pausiertes Supabase-Projekt ist kein gelöschtes. Die Daten liegen eingefroren auf der Platte, und im Dashboard steht ein Wiederherstellen-Knopf.","Ab dem Tag der Pause hast du ein Jahr, um es aus dem Supabase-Dashboard zurückzuholen. Gratis-Projekte pausieren nach etwa einer Woche mit wenig Aktivität.","Nach diesem Jahr wird aus dem Knopf ein Download, und der einzige Weg zurück ist ein neues Projekt mit neuer URL und neuen Schlüsseln.","Der Gratis-Tarif kopiert nichts, solange dein Projekt läuft. Das einzige Backup, das existiert, ist das im Moment der Pause.","2026-09-30","-HkNZCq29jHSo-Vfrvojqo9FatzQS1C8_YnKYkZ2ZlE",[455,462,468,474,480,486,492,498,504,510,516,521,526,532,538,544,549,555,561,567,573,579,585,591,597,603,609,615,621,627,628,634,640,646,652,658,664,670,676,682,688,694,700,705,711,717,723,729,735,741,747,753,759,765,770,775,780,786,791,796],{"path":456,"title":457,"description":458,"published":459,"category":460,"image":461,"draft":411},"\u002Fblog\u002Fbase44-security-scan","Base44 Security Scan: das, was nur er sehen kann","Der Base44 Security Scan prüft sieben Arten von Problemen von innen. Hier ist die Hälfte, die er liest und sonst niemand, und die Hälfte, die er nie ansieht.","2026-10-10","Sicherheitsgrundlagen","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":463,"title":464,"description":465,"published":466,"category":460,"image":467,"draft":411},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Dein API-Key wurde geleakt. Die richtige Reihenfolge","Ein API-Key wurde geleakt und du weißt nicht, was zuerst zu tun ist. Nicht jeder Key im Frontend ist ein Leck, und die Reihenfolge zählt mehr als das Tempo.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":469,"title":470,"description":471,"published":472,"category":460,"image":473,"draft":411},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" ohne RLS abzuschalten","\"Infinite recursion detected in policy for relation\" heißt: Deine Policy hat die Tabelle gefragt, die sie schützt. So brichst du den Kreis.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":475,"title":476,"description":477,"published":478,"category":460,"image":479,"draft":411},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" in Supabase, und die falsche Lösung","\"No API key found in request\" heißt, deine Supabase-Anfrage kam ohne Schlüssel an. Die meisten Antworten zeigen stattdessen auf deine Datenbankregeln.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":481,"title":482,"description":483,"published":484,"category":460,"image":485,"draft":411},"\u002Fblog\u002Fis-base44-safe","Ist Base44 sicher? Was 5.442 echte Base44-Apps zeigten","Ist Base44 sicher? Wir haben 5.442 laufende Base44-Apps mit neun Checks geprüft. Fast alle bekamen ein B, aus Gründen, die der Inhaber nie gewählt hat.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":487,"title":488,"description":489,"published":490,"category":460,"image":491,"draft":411},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","API-Schlüssel verstecken: ab in eine Supabase Edge Function","Einen API-Schlüssel verstecken heißt, ihn aus dem Browser zu nehmen. Eine Supabase Edge Function ist der kleinste Ort dafür, und zwei Schritte zählen mehr.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":493,"title":494,"description":495,"published":496,"category":460,"image":497,"draft":411},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Ist deine .env-Datei öffentlich? Zwölf Pfade zum Prüfen","Ist deine .env-Datei auf deinem eigenen Webserver öffentlich? Zwölf Adressen sagen es dir, und ein Treffer heißt: alles darin ist längst öffentlich.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":499,"title":500,"description":501,"published":502,"category":460,"image":503,"draft":411},"\u002Fblog\u002Fis-v0-safe","v0-Sicherheit: alle 1.790 gescannten v0-Apps bekamen ein A","v0-Sicherheit, gemessen an 1.790 laufenden v0-Apps: Jede bekam ein A. Nur 17 nannten eine Datenbank, und genau das misst das A vor allem.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":505,"title":506,"description":507,"published":508,"category":460,"image":509,"draft":411},"\u002Fblog\u002Fis-bolt-safe","Ist Bolt sicher? Was 1.123 echte Bolt-Apps zeigten","Ist Bolt sicher? Wir haben 1.123 laufende Bolt-Apps mit neun Checks geprüft. Das Hosting war sauber. Die Funde waren Schlüssel und offene Tabellen in den Apps.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":511,"title":512,"description":513,"published":514,"category":460,"image":515,"draft":411},"\u002Fblog\u002Fis-supabase-down-or-your-app","Ist Supabase down oder liegt es an deiner App? So erkennst du es","Ist Supabase down oder liegt es an deiner App? Ein pausiertes Projekt, eine volle Datenbank und ein eigener Fehler sehen gleich aus. Vier Prüfungen helfen.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":517,"title":518,"description":519,"published":452,"category":460,"image":520,"draft":411},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Verschlüsselt Supabase meine Daten? Ja. Wovor das schützt","Verschlüsselt Supabase Daten? Ja: AES-256 im Ruhezustand, TLS bei der Übertragung, SOC 2 und ISO 27001. Was jedes abdeckt und welches Leck keines stoppt.","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":289,"title":522,"description":523,"published":524,"category":460,"image":525,"draft":411},"Supabase Gratis-Tarif: die Limits und was an jedem passiert","Die Limits des Supabase-Gratis-Tarifs: 500 MB Datenbank, 5 GB Egress und keine Backups. Was an jeder Grenze passiert und was $25 für Pro ändern.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":527,"title":528,"description":529,"published":530,"category":407,"image":531,"draft":411},"\u002Fblog\u002Ftest-your-supabase-backup","Teste dein Supabase-Backup, bevor du es brauchst","So testest du dein Supabase-Backup: in ein Übungsprojekt einspielen, Zeilen zählen, anmelden und die Zeile suchen, die einer abgeschnittenen Datei fehlt.","2026-09-28","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":533,"title":534,"description":535,"published":536,"category":407,"image":537,"draft":411},"\u002Fblog\u002Fsupabase-backup-github-action","Kostenloses Supabase-Backup per GitHub Action, mit Haken","Eine Supabase-Backup-GitHub-Action kostet nichts und passt für viele Apps. Der Workflow, der richtige Connection String und das Egress pro Lauf.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":539,"title":540,"description":541,"published":542,"category":407,"image":543,"draft":411},"\u002Fblog\u002Fdownload-your-supabase-backup","Warum du dein Supabase-Backup nicht herunterladen kannst","Dein Supabase-Backup kannst du auf aktuellen Projekten nicht herunterladen, weil die Tageskopie physisch ist. Wie du es prüfst und selbst eine Kopie hältst.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":545,"title":546,"description":547,"published":542,"category":460,"image":548,"draft":411},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": der fehlende Grant","Ab 30. Oktober antwortet eine neue Supabase-Tabelle mit \"permission denied for table\", bis du Zugriff erteilst. Der Grant aus der E-Mail ist die halbe Lösung.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":550,"title":551,"description":552,"published":553,"category":460,"image":554,"draft":411},"\u002Fblog\u002Fopen-api-endpoint-exposed","Ist ein offener API-Endpunkt ein Sicherheitsproblem? Sieh ins JSON","Dein Scan hat einen offenen API-Endpunkt gemeldet. Ob das zählt, hängt davon ab, was zurückkam, und die meisten hier gehörten der Plattform.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":556,"title":557,"description":558,"published":559,"category":460,"image":560,"draft":411},"\u002Fblog\u002Flovable-security-scan","Lovable Security Scan: das Eine, was er nicht beweist","Lovable Security Scan: was Quick Scan und Deep Scan prüfen, wann welcher läuft, und das Eine, was kein Scan von innen beweisen kann.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":562,"title":563,"description":564,"published":565,"category":407,"image":566,"draft":411},"\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":568,"title":569,"description":570,"published":571,"category":460,"image":572,"draft":411},"\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","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":574,"title":575,"description":576,"published":577,"category":460,"image":578,"draft":411},"\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":580,"title":581,"description":582,"published":583,"category":460,"image":584,"draft":411},"\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":586,"title":587,"description":588,"published":589,"category":460,"image":590,"draft":411},"\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":592,"title":593,"description":594,"published":595,"category":460,"image":596,"draft":411},"\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":598,"title":599,"description":600,"published":601,"category":460,"image":602,"draft":411},"\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":604,"title":605,"description":606,"published":607,"category":460,"image":608,"draft":411},"\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":610,"title":611,"description":612,"published":613,"category":460,"image":614,"draft":411},"\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":616,"title":617,"description":618,"published":619,"category":407,"image":620,"draft":411},"\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":622,"title":623,"description":624,"published":625,"category":407,"image":626,"draft":411},"\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":443,"title":5,"description":410,"published":444,"category":407,"image":431,"draft":411},{"path":629,"title":630,"description":631,"published":632,"category":460,"image":633,"draft":411},"\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":635,"title":636,"description":637,"published":638,"category":460,"image":639,"draft":411},"\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":641,"title":642,"description":643,"published":644,"category":460,"image":645,"draft":411},"\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":647,"title":648,"description":649,"published":650,"category":460,"image":651,"draft":411},"\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":653,"title":654,"description":655,"published":656,"category":460,"image":657,"draft":411},"\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":659,"title":660,"description":661,"published":662,"category":460,"image":663,"draft":411},"\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":665,"title":666,"description":667,"published":668,"category":460,"image":669,"draft":411},"\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":671,"title":672,"description":673,"published":674,"category":460,"image":675,"draft":411},"\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":677,"title":678,"description":679,"published":680,"category":460,"image":681,"draft":411},"\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":683,"title":684,"description":685,"published":686,"category":460,"image":687,"draft":411},"\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":689,"title":690,"description":691,"published":692,"category":407,"image":693,"draft":411},"\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":695,"title":696,"description":697,"published":698,"category":460,"image":699,"draft":411},"\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":255,"title":701,"description":702,"published":703,"category":407,"image":704,"draft":411},"Supabase Gratis-Tarif: Backup ohne Terminal selbst machen","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.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":706,"title":707,"description":708,"published":709,"category":460,"image":710,"draft":411},"\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":712,"title":713,"description":714,"published":715,"category":460,"image":716,"draft":411},"\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":718,"title":719,"description":720,"published":721,"category":460,"image":722,"draft":411},"\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":724,"title":725,"description":726,"published":727,"category":460,"image":728,"draft":411},"\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":730,"title":731,"description":732,"published":733,"category":407,"image":734,"draft":411},"\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":736,"title":737,"description":738,"published":739,"category":407,"image":740,"draft":411},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","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":742,"title":743,"description":744,"published":745,"category":460,"image":746,"draft":411},"\u002Fblog\u002Fsupabase-storage-bucket-public","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":748,"title":749,"description":750,"published":751,"category":460,"image":752,"draft":411},"\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":754,"title":755,"description":756,"published":757,"category":407,"image":758,"draft":411},"\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":760,"title":761,"description":762,"published":763,"category":460,"image":764,"draft":411},"\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":766,"title":767,"description":768,"published":763,"category":460,"image":769,"draft":411},"\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":95,"title":771,"description":772,"published":773,"category":460,"image":774,"draft":411},"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":244,"title":776,"description":777,"published":778,"category":407,"image":779,"draft":411},"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":781,"title":782,"description":783,"published":784,"category":460,"image":785,"draft":411},"\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":787,"title":788,"description":789,"published":784,"category":407,"image":790,"draft":411},"\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":260,"title":792,"description":793,"published":794,"category":407,"image":795,"draft":411},"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":797,"title":798,"description":799,"published":794,"category":460,"image":800,"draft":411},"\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",1791618966337]