Technische Fehler beim Betrieb von 16 Produkten auf Lovable und Supabase
Wir betreiben 16 Produkte bei Inithouse. Wir nutzen Lovable und Supabase für alle davon. Ein Team verwaltet alles. Das klingt gut, bis man mit 16 benutzerdefinierten Domains, 16 Supabase-Projekten und 16 Sätzen von Edge Functions konfrontiert wird.
Wir haben Fehler gemacht, die uns Zeit gekostet haben. Hier sind die fünf größten technischen Fehler und unsere Lösungen.
- Inkonsistente Datenbank-Schemas
Unsere ersten drei Produkte verwendeten unterschiedliche Tabellennamen für dieselben Daten. Ein Projekt nutzte page_views für Analysen. Ein anderes nutzte analytics_events. Dies machte es unmöglich, gemeinsamen Code zu schreiben. Eine Aufgabe, die nur einen Nachmittag dauern sollte, dauerte zwei Wochen.
Die Lösung: Wir haben eine gemeinsame Migrationsvorlage erstellt. Jedes neue Produkt erhält dieselben Basistabellen für Analysen, Blogposts und Auth. Wir haben alte Projekte in ruhigen Wochen nachgerüstet. Jetzt dauert das Hinzufügen eines Monitoring-Endpoints 20 Minuten statt eines ganzen Tages.
- Defekte benutzerdefinierte Domains
Lovable ermöglicht es, benutzerdefinierte Domains zu verbinden. Manchmal gelingt das Deployment, aber die DNS-Verifizierung schlägt fehl. Die Preview-URL funktioniert, aber die Live-Domain zeigt eine leere Seite. Wir haben drei Tage Traffic verloren, weil wir die Live-URL nicht überprüft haben.
Die Lösung: Wir nutzen eine Post-Publish-Checkliste. Wir öffnen jede Live-Domain in einem Inkognito-Fenster, um sie zu verifizieren. Außerdem haben wir einen Uptime-Check hinzugefügt, der Slack benachrichtigt, wenn eine Domain ausfällt.
- Fragmentierte Datensichtbarkeit
Wir konnten nicht sehen, wie unser gesamtes Portfolio performt, ohne für jedes Produkt ein separates Dashboard zu öffnen. Wir haben im Blindflug agiert.
Die Lösung: Wir haben einen Stats-API-Endpoint in jedem Supabase-Projekt bereitgestellt. Jedes Produkt sendet Kennzahlen wie Nutzer und Anmeldungen in einem Standardformat. Ein einzelnes Skript zieht diese Daten in ein einziges Dashboard.
- Kopieren und Einfügen von Komponenten
Früher haben wir React-Komponenten von einem Projekt in ein anderes kopiert. Diese Komponenten trugen alte Annahmen in sich. Eine Preiskarte aus einem Produkt funktionierte in einem anderen nicht, weil sie einen anderen Zahlungsfluss erwartete. Wir haben Tage damit verbracht, diese Phantom-Bugs zu debuggen.
Die Lösung: Wir haben mit dem Kopieren und Einfügen aufgehört. Wir pflegen ein Dokument mit Komponentenmustern. Wir weisen Lovable an, eine neue Komponente basierend auf diesen Mustern zu erstellen. Das Setup dauert länger, ist aber viel einfacher zu warten.
- Chat-Verläufe als Dokumentation nutzen
Wir haben uns auf den Lovable-Chatverlauf verlassen, um uns an technische Entscheidungen zu erinnern. Chat-Logs sind unübersichtlich. Sie vermischen erfolgreiche Änderungen mit fehlgeschlagenen Versuchen. Es ist schwer, in einem langen Thread einen spezifischen Grund für eine Änderung zu finden.
Die Lösung: Wir haben die Protokollierung von Entscheidungen nach Linear verlagert. Wir schreiben eine Zeile in Linear, die erklärt, was geändert wurde und warum. Der Lovable-Chat ist für die Ausführung da. Linear ist für Entscheidungen da.
Die Lektion ist einfach. Behandle 16 Produkte nicht wie 16 separate Projekte. Behandle sie wie ein einziges Portfolio. Standardisiere deine Vorlagen und überwache alles von einem Ort aus.
Quelle: https://dev.to/jakub_inithouse/technical-mistakes-of-running-16-products-on-lovable-supabase-59fh
Optionale Lern-Community: https://t.me/GyaanSetuAi
