malahov.io

Launch, Zahlungen von Bekannten, ein gehackter Server

Die Extension ist offiziell im Chrome Store, die ersten Zahlungen kamen von Freunden. Und dann stellte sich heraus, dass einer meiner Server seit einer Woche für jemanden Krypto schürft — dank einer frischen Lücke in React Server Components.

Serie „Call Copilot“ · Teil 4 von 20Produkt ausprobieren →

Von Georg Malahov

Es war einer von diesen Tagen, die einem lange in Erinnerung bleiben. Ich saß an die sieben Stunden am Stück am Projekt: ein Onboarding über drei Seiten gebaut, eine Demo-Session, Export und Import der Daten, endlich diesen wahnsinnig nervigen Bug mit dem Tab-Wechsel gefixt, alles mit Tests abgedeckt und in die Prod geschoben. Ein einziger Pull Request hat an dem Tag fünftausend Zeilen gelöscht und zwanzig hinzugefügt — ein großes Stück Arbeit, nach dem das Atmen leichter wurde. Genau diese Arbeit liegt mir; da bin ich in meinem Element. Finanziell stehe ich allerdings schon ordentlich im Minus — neulich habe ich die Ausgaben zusammengerechnet: der Marketing-Kurs, in dessen Rahmen ich diesen Launch überhaupt mache, Abos für Tools, Kleinkram an Services — macht rund dreitausend Euro —, und deshalb will ich möglichst schnell aufmachen und die ersten Verkäufe sehen.

Am achten Dezember ging die erste Testzahlung durch — ich habe die Zahlung selbst durchlaufen lassen, und sie hat funktioniert. Und am zehnten kam die Extension offiziell in den öffentlichen Chrome Store. Ich habe an dem Tag notiert, dass "heute ein großer Tag" ist, und das Gefühl war echt, auch wenn da genau so viel Großes drin ist wie in jedem Tag, an dem ein lang ersehnter Schritt endlich passiert. Ich habe mit einem Freund telefoniert; er ist den ganzen Installations-Flow von Anfang bis Ende durchgegangen, hat ein paar kleine UX-Mängel beim Onboarding und bei den Zählern gefunden — aber ist durchgekommen. Die ersten echten Zahlungen kamen aus dem Freundeskreis, von ein paar Leuten, denen ich es zum Testen gegeben hatte und die den ganzen Weg gegangen sind, um zu helfen. Das ist schön, aber mir ist klar: Das ist bisher eine Generalprobe, nicht der Markt.

Das Store-Listing verspricht das Wichtigste: ein Transkript des Google-Meet-Calls — und kein Bot-Teilnehmer im Call.

Und eine Woche später kam eine Portion Realität. Am siebzehnten Dezember, während gerade die nächste Version veröffentlicht wurde, bestätigte sich: Einer meiner Server war gehackt worden — den Spuren nach war jemand vor etwa zehn Tagen eingestiegen und hat still Krypto geschürft. Die Lücke war nicht meine: Anfang Dezember wurde in React Server Components eine kritische Schwachstelle gefunden (CVE-2025-55182, auch bekannt als React2Shell) — betroffen waren Apps auf Next.js, dem Haupt-Framework meiner Landingpages, und eine Welle von Einbrüchen mit Krypto-Minern rollte damals durchs ganze Internet. Das Produkt hat nichts abbekommen — von seinen Teilen lag auf der Maschine nur die Landingpage, ohne Secrets —, aber die Paranoia sprang voll an: den Server neu aufsetzen, Passwörter und Umgebungsvariablen überall durchwechseln, wo ich rankam. Damit habe ich Zeit verloren statt mit richtiger Arbeit. Die Lektion ist eine allgemeine: Auch wenn man selbst nichts kaputt gemacht hat, erreicht eine fremde Lücke in einem populären Framework jede Maschine, die man nicht rechtzeitig aktualisiert hat.

Zum Ende der Woche habe ich doch noch ein paar Fixes fertig gemacht und die neue Version zur Prüfung geschickt. Hat wie üblich länger gedauert als geplant — drei Stunden extra, statt ins Schwimmbad zu fahren. Aber es ist gut geworden — richtig gut, würde ich sagen. Und während ich mit der Veröffentlichung beschäftigt war, kam noch eine Mail aus Nigeria mit dem Angebot, mir für zweihundertfünfzig Dollar tausend Installs zu faken. Offensichtlich Müll, aber lustig, dass ich schon so weit gekommen bin, dass man mir so etwas schreibt.

Für mich selbst formuliere ich die Extension gerade so: Das ist mein zweites Projekt, das ich zu einer persönlichen Quelle für Zusatzeinkommen machen will und an dem ich Marketing und das Führen eines Business übe. Nicht der Hauptjob — ein Übungsfeld. Der Plan für den Urlaub ist deshalb, nicht am Code zu arbeiten, sondern an der Vermarktung: die Freigabe der neuen Version abwarten und in die kostenlosen Kanäle gehen.

Das nächste Ziel ist ein einziges: die erste Zahlung von einem Menschen, den ich nicht kenne und nicht überredet habe. Bisher kommen alle Zahlungen aus dem Freundeskreis, und die zählen nicht: Freunde kaufen, um zu helfen, nicht weil sie es brauchen, und über den Markt sagen solche Käufe nichts. Gibt es auch nur einen Fremden, der es selbst gefunden, selbst installiert und selbst bezahlt hat — dann braucht das Produkt jemand außerhalb meines Kreises. Gibt es ihn nicht — dann brauchen es bisher nur ich und meine Freunde.

Ich schicke die Version zur Prüfung in den Chrome Store — und geh endlich schlafen.