Formageddon: zehn Jahre bis zur ersten fertigen Chrome Extension
Meine erste Chrome Extension habe ich vor zehn Jahren angefangen und nie fertig gebaut. Nicht an der Funktion bin ich gescheitert, sondern am Setup. Formageddon ist das Projekt, bei dem dieser Widerstand plötzlich weg war.
Vor ungefähr zehn Jahren habe ich zum ersten Mal versucht, eine Chrome Extension zu bauen. Was sie können sollte, weiß ich nicht mehr. Ich weiß nur noch, woran es lag, dass sie nie fertig wurde, und das war nicht die Funktion.
Der Widerstand lag immer vorne
Das Muster hat sich danach mehrfach wiederholt. Es gab eine Idee, ein neues Verzeichnis, und dann saß ich im Setup fest. Manifest, Berechtigungen, Build, Reload-Zyklus, irgendein Schritt, der auf meinem Rechner anders lief als in der Anleitung. Nach zwei Abenden hatte ich eine Umgebung, die startete, und keine einzige Zeile, die etwas tat.
In der Arbeit trägt man das. Da bezahlt jemand dafür, dass man sich durch ein Setup beißt, und am Ende steht ein System, das jahrelang läuft. Bei einem Nebenprojekt mit genau einem Nutzer, nämlich mir, hört der Wille an dieser Stelle auf.
Lange dachte ich, mir fehle die Zeit. Mir fehlte der Anlauf.
Wieso ausgerechnet Formulare
In meinen eigenen Projekten stoße ich ständig auf Formulare, die ich selbst gebaut habe und dann selbst befüllen muss. Registrierungsstrecken sind die schlimmsten. Zwanzig Felder, drei Schritte, und beim vierten Testdurchlauf tippt man Name, Adresse und Mailadresse zum vierten Mal von Hand ein, weil irgendwo eine Validierung anders reagiert als gedacht.
Irgendwann, ich glaube es war beim dritten oder vierten Durchlauf einer Registrierungsstrecke, die ich am selben Abend schon zweimal repariert hatte und deren Bestätigungsschritt trotzdem noch an einer Kleinigkeit hing, habe ich mich gefragt, warum das ein Modell nicht einfach übernimmt. Die Seite steht ja da. Was in ein Feld gehört, ergibt sich meistens aus dem Label, dem Feldtyp und dem, was die Seite drumherum behauptet.
Was ich bewusst nicht wollte
Von außen geht das heute auch. Ein Agent im Browser, Claude oder Codex, irgendetwas, das die Seite fernsteuert und mir hinterher erzählt, was es getan hat. Für zwanzig Testfelder war mir das zu groß.
Ich wollte einen Rechtsklick auf den Container des Formulars, und sonst nichts. Kleiner Kontext, sofort da, Testdaten rein.
Der Abend, an dem es lief
Gebaut habe ich Formageddon dann in einer ChatGPT-Session im Browser. Kein Copilot, keine Editor-Integration, nichts, was ich vorher hätte einrichten müssen. Ich habe beschrieben, was ich wollte, den Code herüberkopiert, die Extension geladen, den Fehler zurückgemeldet und wieder herüberkopiert.
Rückblickend ist bemerkenswert, wie unelegant dieser Weg war: kein Werkzeug, das speziell für Entwicklung gedacht war, kein Repository-Kontext, kein Terminal, nur ein Chatfenster und die Zwischenablage. Und trotzdem lag der Punkt, an dem ich zehn Jahre lang stehen geblieben war, nach einer knappen halben Stunde hinter mir.
Das war der Kipppunkt, und er lag nicht dort, wo ich ihn erwartet hätte. Das Modell hat mir nicht das Schwierige abgenommen. Es hat mir das Zähe abgenommen. Den Teil, für den man keine Erfahrung braucht, sondern Geduld, und für den ich abends nach der Arbeit nie welche hatte.
Für das, was ich da gemacht habe, gab es zu dem Zeitpunkt noch keinen Namen. Vibe Coding hieß das erst später.
Was mir das Werkzeug nicht abgenommen hat
Sauber funktioniert die Extension bis heute nicht. Es gibt Formulare, bei denen die Felderkennung danebenliegt, und welche das sind, habe ich nie aufgeschrieben. Das ist der ehrliche Teil dieser Geschichte: Der Anlauf war weg, die Sorgfalt nicht plötzlich da. Ein Werkzeug, das einem den mühsamen Anfang abnimmt, nimmt einem nicht das Nachfassen ab, und genau das ist die Stelle, an der aus einem Wochenendprojekt Code wird, den niemand mehr wirklich prüft.
Was jetzt ansteht
Der Code ist inzwischen älter als das Werkzeug, mit dem er entstanden ist. Er ruft ein Modell auf, das damals sinnvoll war, über eine Session, die es so nicht mehr gibt, und mit einer Prompt-Struktur, die ich heute anders schneiden würde. Ein Durchgang mit Codex oder Claude steht an, zusammen mit einem aktuellen Modell und ordentlichem Logging, damit ich die Fehlerfälle endlich sehe statt sie zu ahnen.
Interessant finde ich vor allem die Frage dahinter. Wenn ein Projekt in ein paar Stunden entsteht, weil das Werkzeug den Anlauf übernimmt, altert es dann auch im Takt dieses Werkzeugs? Bei Formageddon sieht es danach aus. Ich weiß noch nicht, ob das ein Problem ist oder einfach die neue Halbwertszeit von Nebenprojekten. Die Kehrseite des fehlenden Anlaufs ist, dass ich inzwischen mehr parallel anfange, als mein Kopf halten kann, und ausgerechnet das Wochenlimit mir die Pause verordnet.
Der Code liegt offen auf GitHub. Wenn der Refactor durch ist, schreibe ich auf, was dabei herausgekommen ist.