Der Wendepunkt
Ich war fast ein Jahrzehnt auf Twitter (jetzt X). Früher war es nützlich — ein kuratierter Feed der Leute, denen ich folgte, in zeitlicher Reihenfolge. Zehn Minuten öffnen, auf den neuesten Stand kommen, schließen.
Irgendwann 2024 stimmte das nicht mehr. Der Für-dich-Tab wurde Standard. Beworbene Posts vermehrten sich. Engagement-Köder wurde dominant. Ich öffnete X, um nach drei Freunden zu schauen, und schloss es 40 Minuten später, ohne gelesen zu haben, weshalb ich kam.
Ich versuchte das Offensichtliche — auf den Folgen-Tab wechseln, Wörter stummschalten, Listen bauen. Jedes half ein bisschen. Aber der Für-dich-Algorithmus setzte sich selbst zurück, die rechte Seitenleiste zeigte weiter Trends, die mich nicht interessierten, und Anzeigen schlüpften durch. Es gab keinen einzigen Ort, um den Lärm abzustellen.
Die erste Version: 200 Zeilen JavaScript
Ich schrieb an einem Wochenende eine kleine Chrome-Erweiterung. Sie machte drei Dinge:
- Posts mit „Promoted”-Label ausblenden
- Rechte Seitenleiste ausblenden
- Timeline auf „Folgen” zwingen
Das war's. ~200 Zeilen, keine UI, nur über das Erweiterungssymbol umschaltbar. Ich teilte den Code mit ein paar Freunden, die auch auf X lebten. Sie fingen an, Features zu verlangen.
„Kann es Konten stummschalten, ohne ihnen zu entfolgen?” Klar.
„Kann es nach Schlüsselwort filtern?” Ja.
„Kann es lange Threads mit KI zusammenfassen?” Hmm. Das ist ein echtes Feature.
Vom Skript zum Produkt
Die KI-Zusammenfassungs-Anfrage war der Moment, in dem es aufhörte, ein Hobby-Skript zu sein. Um KI richtig zu machen, brauchte ich:
- Ein Backend (API-Keys aus einer Chrome-Erweiterung zu schicken ist ein Sicherheitsdesaster)
- Authentifizierung (damit ich weiß, wer die KI aufrufen darf)
- Rate Limiting (damit ein Nutzer mein Gemini-Budget nicht aufbraucht)
- Bezahlung (damit Power-User für unbegrenzte Zusammenfassungen zahlen können)
Nichts davon stand im ursprünglichen „Wochenend-Erweiterungs”-Plan. Aber dachte ich: wenn ich das alles für ein Feature baue, kann ich es richtig bauen, damit der Rest der Erweiterung es auch nutzen kann — Filter zwischen Geräten synchronisieren, Präferenzen in der Cloud speichern usw.
Aus dem Hobby-Projekt wurde ein vollständiges SaaS. Rückblickend: wahrscheinlich übertrieben für v1. Aber die Teile, die ich behalten habe (Auth, Sync, Bezahlung), machen das Produkt wirklich besser, also bereue ich es nicht.
Der Tech-Stack
Für alle, die ein ähnliches kleines SaaS bauen wollen, was funktioniert hat:
- Backend: Node + Express + tRPC + Drizzle, auf Railway. ~5$/Monat.
- Datenbank: MySQL (auch auf Railway).
- Frontend (Site): Plain HTML/CSS/JS, kein Framework. Auf Cloudflare Workers. Kostenlos.
- Domain: Cloudflare Registrar. ~10$/Jahr.
- E-Mail: SendGrid Free-Tier (100/Tag, reicht für eine kleine App).
- Bezahlung: Stripe Checkout + Customer Portal.
- KI: Google Gemini (Free-Tier deckt viel ab, bevor man upgraden muss).
Gesamte monatliche Kosten: unter 10$. Die Erweiterung ist im Chrome Web Store (5$ einmalige Entwicklergebühr).
Was mich überrascht hat
Auth ist schwerer, als es aussieht. E-Mail + Passwort mit Verify, Reset, Sessions, JWT, Login-Rate-Limiting — eine lange Checkliste. Ich hätte es nicht von Grund auf gemacht, hätte ich den Aufwand gekannt. Nutze eine Library oder einen Dienst, wenn du kannst.
Stripe ist einfacher, als es aussieht. Zwei tRPC-Endpoints (Checkout + Customer Portal), ein Webhook, fertig. Der schwere Teil ist die Bankkonto-Verifizierung, nicht die Integration.
Chrome-Web-Store-Review ist unvorhersehbar. Meine erste Einreichung wurde wegen einer ungenutzten Berechtigung abgelehnt. Die zweite war in Tagen genehmigt. Jedes Update geht erneut durch Review — sei bereit, 1-7 Tage zu warten.
Wie es weitergeht
Die Erweiterung ist live, die Site online, Bezahlungen funktionieren End-to-End. Die nächsten ~3 Monate drehen sich um Distribution: Blog-Posts (du liest einen), Product-Hunt-Launch, Reddit, IndieHackers.
Wenn dein X-/Twitter-Feed dich nervt, würde ich mich freuen, wenn du es ausprobierst. Der Free-Tier deckt das meiste ab, was die meisten brauchen. Wenn du Feedback hast, meine E-Mail steht im Footer — ich lese alles.