Ein KI-Chat, der vor dem Bauen die Fragen stellt, die dein Bau-Tool nie stellt, und daraus den fertigen Prompt für Lovable, Cursor, Claude Code & Co. macht.
PromptPrinter ist mein eigenes SaaS-Projekt: kein Schulauftrag, sondern aus einer eigenen Idee entstanden, über Monate allein gebaut und seit August 2026 live unter promptprinter.app. Zielgruppe sind „Vibe-Coder“: Leute, die ihre Ideen mit KI-Bau-Tools wie Lovable, Cursor, Claude Code oder Bolt umsetzen.
Der Kern ist ein einziges Versprechen: keine Credits verbrennen. Bau-Tools legen sofort los, auch wenn die Beschreibung Lücken hat, und die kosten hinterher Nachbesserungsrunden, für die man wieder bezahlt. Finn, das Maskottchen und der Chat-Assistent der App, fragt deshalb vorher in einer gebündelten Rückfrage nach Ziel-Tool, Kern-Screens, Datenmodell, Login und Design-Richtung. Danach kommt der fertige, aufs Ziel-Tool zugeschnittene Prompt: ein Klick zum Kopieren.
Chats & Projekte
Chats
Eine Chat-Erfahrung
Idee beschreiben, eine Rückfrage beantworten, Prompt kopieren. Die Antwort streamt Token für Token herein, das Ziel-Tool ist pro Chat einstellbar, diktieren statt tippen geht auch.
Projekte
Vollwertige Arbeitsräume
Eigene Anweisungen, hochgeladene Dateien und mehrere Chats pro Projekt. Der Kontext fliesst automatisch in jeden Chat, gelungene Prompts landen per Klick in den Ergebnissen.
Funktionen
Streamender Chat mit Finn: die Antwort erscheint Token für Token über Server-Sent Events, abbrechbar mitten im Lauf; der Abbruch stoppt auch den Aufruf beim KI-Anbieter, nicht nur die Anzeige.
Ziel-Tool pro Chat: Lovable, Cursor, Claude Code, v0, Bolt & Co. als Ein-Klick-Auswahl plus Freitext, damit ein neues Tool keinen Code-Release braucht.
Projekt-Workspaces: Anweisungen, Dateien (privater Storage-Bucket) und mehrere Chats; der Kontext wird mit festem Zeichenbudget priorisiert injiziert statt blind angehängt.
Eigene KI-Keys (BYOK): Anthropic, OpenAI, Gemini oder ein OpenAI-kompatibler Endpunkt, AES-256-GCM-verschlüsselt gespeichert. Ein eigener Key hebt alle Limits auf.
Gespeicherte Prompts: was funktioniert hat, landet per Klick in einer durchsuchbaren Bibliothek, mit Markdown- und PDF-Export. Bewusst ohne Modell-Aufruf, also gratis.
Kompletter Auth-Flow: Login, Signup, Passwort-Reset und Konto-Löschung, abgesichert über Supabase Row Level Security und Cloudflare Turnstile. Dazu ein eigenes Hilfe-Center und echte Rechtstexte.
Sprachmodus, Command-Palette (⌘K), Onboarding-Tour, Dark Mode und ein eigenes Mobile-Layout: barrierefrei mit über 4,5:1 Kontrast in beiden Themes, per Test abgesichert.
Galerie
Landing Page: Finn stellt sich persönlich vor, darunter die Demo in drei Stufen: Idee → Rückfrage → Prompt.So funktioniert’s: Idee erzählen, kurz klären, Prompt kopieren. Schritt 2 ist der, der den Unterschied macht.Der Chat: das Herzstück im Dark Mode: Sidebar, Ziel-Tool-Auswahl über dem Eingabefeld, Finns Antwort streamt herein.Projekt-Workspace: die Kontext-Rail mit Anweisungen und Dateien bleibt stehen, die Hauptspalte wechselt zwischen Übersicht, Chats und Ergebnissen.Gespeicherte Prompts: was funktioniert hat, bleibt: mit Ziel-Tool-Markierung, Kopieren und Export.Einstellungen: Profil, Theme und die eigenen KI-Keys, verschlüsselt abgelegt.Preise: Free ist mit eigenem KI-Key gratis, Pro übernimmt den Key für 5,90 € im Monat. Gegen die echten Kosten pro Nachricht gerechnet, nicht geschätzt.Hilfe-Center: zehn kurze Kapitel, von der ersten Anmeldung bis zu eigenen API-Keys.
Alles auch auf Handy-Breite, mit eigenem Mobile-Layout statt gestauchtem Desktop:
Herausforderungen & Lösungen
Ich habe die App zweimal gezielt gegen mich selbst geprüft: als schonungsloser QA-Audit (61 Befunde) und als Sicherheits-Audit vor dem Launch (17 Befunde). Vier Funde, die wehgetan haben:
Sicherheit & Kosten
Ein offener Endpunkt, der echtes Geld kostet
ProblemDie Chat-Route lief ohne Anmelde-Prüfung: Anonyme Anfragen sprangen an der Kontingent-Logik vorbei und direkt auf meinen KI-Key. Der einzige Schutz war ein Limit pro IP: gelesen aus einem Header, den der Aufrufer selbst setzt. Durchgerechnet rund 400 € pro Stunde auf meiner Kreditkarte, von einem einzigen Rechner aus.
LösungAnmelde-Pflicht auf der Route, die IP-Ermittlung so umgestellt, dass sie nicht mehr vom Aufrufer bestimmt werden kann, und als Notbremse ein globales Tagesbudget für Modell-Aufrufe auf dem Server-Key.
Kernfunktion
Der wertvollste Chat starb zuerst
ProblemAb der 26. Runde antwortete ein Chat nur noch mit einem Fehler: dauerhaft, auch nach Neuladen, weil er aus den gespeicherten Daten entstand. Ursache war eine Obergrenze in der Validierung, die griff, bevor die serverseitige Kürzung lief. Betroffen war ausgerechnet der lange, iterativ verfeinerte Chat: die Kernschleife des Produkts.
LösungDer Client schickt nur noch den relevanten Ausschnitt des Verlaufs, der Server klammert zu lange Verläufe zusätzlich vor der Validierung. Bestandschats funktionieren sofort wieder, ohne Migration: plus Regressionstests, die genau diesen Fall festhalten.
Sicherheit
Eigene KI-Keys öffneten ein Tor ins interne Netz
ProblemWer einen eigenen Anbieter hinterlegt, gibt dessen Adresse an, und der Server ruft sie ab. Geprüft wurde nur „ist das eine URL“. Damit konnte jeder angemeldete Gratis-Nutzer den Server dazu bringen, interne Ziele abzurufen: Cloud-Metadaten, localhost, private Netzbereiche.
LösungEine eigene Prüfung erzwingt HTTPS, löst den Hostnamen wirklich auf und lehnt jede Adresse in privaten oder reservierten Bereichen ab. Ein erster fehlschlagender Test deckte dabei einen Sonderfall auf, den ich nicht auf dem Zettel hatte: die normalisierte Hex-Schreibweise IPv4-gemappter IPv6-Adressen.
Geschäftsmodell
Preise, die nie gegen die echten Kosten gerechnet waren
ProblemDie ersten Kontingente (200 bzw. 2000 Nachrichten pro Monat) waren als „grosszügig“ gesetzt: geschätzt, nie gegen die tatsächlichen Kosten pro Nachricht geprüft. Durchgerechnet hielt die Rechnung nicht: Jede Gratis-Anmeldung erzeugte strukturelle Kosten auf meinem Key.
LösungErst technisch: günstigeres Standardmodell, gekürzter Verlauf, halbierte Kontext-Budgets. Dann die ehrlichere Produktentscheidung: Free setzt einen eigenen Key voraus und ist dafür wirklich unbegrenzt und gratis. Pro (5,90 €/Monat) verkauft genau das, was es kostet: dass ich mich um den Key kümmere.
Entwicklungsreise
1 · Idee & Name
Beobachtung: Die Qualität dessen, was KI-Tools liefern, hängt direkt an der Qualität des Prompts: Gute Prompts zu schreiben ist aber Arbeit. „PromptPrinter“ als Metapher: Die App druckt Prompts wie ein Drucker Dokumente.
2 · Stack-Entscheidungen
Next.js 15 mit App Router und React 19, Supabase als Backend mit Row Level Security. Wichtigste Architektur-Entscheidung: Der Modellzugriff sitzt komplett in einer Datei. Anbieter wechseln oder ergänzen ist damit eine Änderung an genau einer Stelle: was sich später mehrfach ausgezahlt hat.
3 · Feature für Feature
Auth, Chat, Projekt-Workspaces, Dateien, Command-Palette, responsives Layout: jedes Feature einzeln gebaut, getestet und gepusht, mit einem festen Quality-Gate vor jedem Commit: Typecheck, Lint, Tests und Production-Build müssen grün sein.
4 · Branding: Finn
Vom abstrakten Logo zum Charakter: Finn, der Delfin, mit 14 Zuständen (neugierig, denkend, feiernd, wartend …) als eigenes State-System. Er begleitet durch Landing Page und App und ist bewusst so gebaut, dass jeder Screen auch ohne ihn funktioniert.
5 · Umbauen und weglassen
Der grösste Umbau: eine einzige Chat-Erfahrung statt getrennter Modi, Projekte als vollwertige Arbeitsräume. Und die unangenehmere Hälfte davon: ein Feature, das auf Knopfdruck zehn Dokumente auf einmal erzeugte, ersatzlos entfernt. Wer einen Prompt wollte, bekam einen Stapel. Danach ein „Wahrheits-Pass“ über alles, was es noch versprach, bis in die AGB hinein.
6 · Zwei Audits gegen mich selbst
QA-Audit mit 61 Befunden, danach ein Sicherheits-Audit mit 17 weiteren. Alle kritischen und hohen Befunde behoben, je als eigener Commit mit grünem Gate; jede Datenbank-Änderung live angewendet und als angemeldeter Nutzer verifiziert. Die Testsuite wuchs dabei von 259 auf 662 Tests.
7 · Launch
Seit August 2026 öffentlich erreichbar unter promptprinter.app: eigene Domain, echte Nutzer, echte Datenbank. Offen bleibt bewusst nur die Zahlungsanbindung: Pro läuft bis dahin als Vormerkung statt als Kaufabschluss.
Design-Philosophie
„Finn’s World“: eine ruhige, lichtdurchflutete Ozean-Atmosphäre aus Creme, Babyblau, Koralle und Navy statt generischem SaaS-Look, über einem zurückhaltenden Dev-Brand-Fundament in der Nähe von Linear oder Raycast.
Eigenes HSL-Token-System in Tailwind: Rohe Hex-Farben sind in Komponenten verboten, damit beide Themes garantiert mitwandern. Animationen mit Framer Motion, global auf prefers-reduced-motion gedrosselt.
Grundregel für das Maskottchen: Jeder Screen muss auch ohne Finn funktionieren. Er ist Begleiter, nicht Krücke.