1of10 Alternative: Ich habe meine in einem Nachmittag für 0€/Monat gebaut

7 min read

Wenn du virale Content-Ideen suchst, funktioniert eine Sache peinlich gut: YouTube Ausreißer. Videos, die weit über den Kanaldurchschnitt hinausschießen, meist bei kleinen Channels, denen noch niemand folgt. Ein Kanal macht normalerweise 50K Views und plötzlich knallt einer mit 500K rein? Da hat etwas eingeschlagen. Titel, Thumbnail, Thema, Timing, egal was. Lohnt sich zu analysieren.

Dafür gibt es ein Tool. Heißt 1of10. Kostet diesen Monat $29. Oder $39. Ich hab aufgehört, deren Preisseite zu verfolgen, die ändert sich ständig. Dazu ein Dashboard voller Features, die niemand wollte, keine API, nichts was ich in meinen eigenen Workflow einbauen kann.

Also hab ich mein eigenes gebaut. Nicht im heroischen "ein Nachmittag, 200 Zeilen, schaut mich an" Sinne. Im langweiligen Sinne: Ich hab ein paar kurze Prompts an Claude getippt und das Ding lief.

TL;DR — Das ist kein Tutorial. So arbeite ich tatsächlich mit AI, wenn ich ein kleines Tool baue. Der Code ist nicht interessant. Der entscheidende Prompt ist der: wo ich aufgehört hab, eine Lösung zu spezifizieren und Claude stattdessen ein Problem gegeben hab. Dieser Move ist der ganze Artikel.

Entwickler vergleicht hektisch Preispläne am Schreibtisch, während Kollege entspannt mit fertiger Projekt-Benachrichtigung am Laptop sitzt
Ein Dev hat geliefert. Ein Dev liest immer noch Preisstufen. Rate mal, wer gewonnen hat.

Die Paywall und die Spec

Der Auslöser war ein Forum-Post, den ich nicht verlinke (Medium verlinkt kompliziert und Glaubwürdigkeit stirbt im Klick). Sinngemäß:

Trainiere Claude auf virale Headlines und YouTube-Titel. Der Artikel selbst ist egal. Titel und Thumbnail sind alles. Wir nutzen 1of10 um Ausreißer-Videos zu finden und die Muster reverse-zu-engineeren.

Valider Workflow. Nervige Paywall. Und ich hatte den Verdacht, 1of10 sind drei API-Calls in einem Trenchcoat.

Die Spec, im Kopf geschrieben und nirgends getippt. Eine Suchanfrage rein. Die Top 10 YouTube-Videos raus, die ihren eigenen Kanaldurchschnitt übertreffen. Score-Formel: views / channelAverage. Kostenlose YouTube Data API, 10K Quota-Units pro Tag, etwa 100 komplette Suchen. Kosten: $0 für immer.

Die Metrik ist eine Division. Das ist der ganze Grund, warum 1of10 überteuert ist: die Mathematik, die sie verkaufen, ist trivial, das Dashboard ist wo die Abrechnung wohnt.

Der Prompt, der die eigentliche Arbeit gemacht hat

Das Setup ist uninteressant. App installieren. Nein, in den richtigen Projektordner. Nimm gh statt curl. Drei Prompts, drei Minuten. Das Gerüst der Astro-App und der Algorithmus selbst waren in einer früheren Claude-Session entstanden, deren Logs ich nicht mehr hab (sichere deine Claude Code Projekte, das hab ich auf die harte Tour gelernt).

App läuft lokal. Ich tippe eine Suche. Das UI ist hässlich. Das Ranking ist verrauscht. Eine Top-10 sortiert nach Ausreißer-Score mischt echte Ausreißer mit normalish Videos und ich kann nicht sagen, wo das echte Signal aufhört. Meine Augen sehen drei offensichtliche Gewinner. Mein Hirn kann den Algorithmus nicht benennen, der dasselbe sagt.

Also tippte ich das:

can u improve the interface ? [screenshot]
not readable, and i'd want a one-click
copy of the best outlier titles
(the top 3 here really stand out,
idk how you calculate that,
where it really jumps mathematically)

Drei Bitten. UI-Fix. Copy-Button. Und die wichtige: idk how you calculate that, where it really jumps.

Dieser letzte Teil ist der ganze Artikel.

Hier ist was ich an einem schlechten Tag getippt hätte, der Art Tag wo ich versuche wie ein Engineer zu klingen: implementiere eine Funktion die die Top N statistischen Ausreißer mit z-score oder Perzentil-Schwellwerten flaggt, mit ordentlicher Edge-Case-Behandlung und Unit Tests.

Dieser Prompt liefert z-scores. Z-scores funktionieren nicht bei diesen Daten. Die Verteilung ist alles andere als normal, Ausreißer-Rankings sind bestenfalls Power-Law, und ich hätte eine Funktion bekommen, die zehn Ergebnisse bei einer glatten Kurve flaggt und null bei einer zackigen. Nutzlos.

Was ich stattdessen tippte war das Problem, nicht die Lösung. "Wo springt es wirklich."

Claude kam zurück mit drei Kandidaten-Algorithmen (z-score, gap ratio, percentile threshold), erklärte warum gap ratio am besten zu dieser Art Daten passt, und schrieb es:

for each pair of consecutive scores (sorted desc):
  ratio = score[i] / score[i+1]
  keep track of the largest ratio seen
  mark the cut at that position
if the best ratio is below 1.5x: only the first result is an outlier

Zehn Zeilen. Lauf es auf [45, 28, 20, 3.2, 2.8, 2.1], der Cut fällt zwischen 20 und 3.2 (eine 6.25x Lücke), und die ersten drei werden als echte Ausreißer geflaggt. Genau was meine Augen sahen. Nichts was ich selbst hätte spezifizieren können.

Beschreibe das Problem, nicht die Lösung. Das Model hat zehntausend Papers über Ranking und Segmentierung gelesen. Du hast null gelesen.

Drei weitere Prompts, gleiche Form

YOUTUBE_API_KEY not configured / it's in infisical

Der Dev-Server war wegen einem fehlenden Secret gecrasht. Ich tippe die Fehlermeldung plus einen Hinweis: it's in Infisical. Infisical ist ein Secrets-Manager. Hält API-Keys aus normalen .env-Dateien raus. Die Art Hygiene, um die ich mich erst gekümmert hab, nachdem ich zum dritten Mal einen geleakt hatte. Claude wrappte den Launch-Command mit infisical run, die App bootete, wir machten weiter. Zwei Sekunden. So sagst du einer AI wo das Secret ist, ohne das Secret zu pasten.

no find the titles that overperform on a given topic [langer Paste des Forum-Threads]

Claude war in ein benachbartes Feature abgedriftet. Sah cool aus, war nicht was ich wollte. Ich kilte es mit "no" und pastete die ursprüngliche Spec aus dem Forum, wortwörtlich. Neu zentrieren durch Wiederholung, nicht durch Erklärung. Diskutiere nicht mit dem Model. Neu verankern.

the blue on black isn't readable [screenshot] and it's good to copy min 5 results to identify patterns

Zweiter UI-Pass. Screenshot von unlesbaren blauen Links, plus eine Business-Rule ins Feedback geschmuggelt: min 5 results to spot a pattern. Claude justierte den Kontrast, kilte das Blau, hob die echten Ausreißer mit einem Korall-Akzent hervor, graute den Rest aus. Die Regel wurde zum Default für den Export-Button: minimum 5, geht hoch wenn der Gap-Detektor mehr findet. Ein Turn.

Die übersprungenen waren ok, A, C, ok, ok. Validierungen und Multiple-Choice-Antworten auf Claudes eigene Design-Fragen. Plus ein Kosten-Check mid-Session (is the Google API free?) weil du nicht fertig bauen willst, was du dir nicht leisten kannst zu betreiben. Der Rhythmus ist alles Information, keine Zeremonie.

24 Stunden später wollte ich es in Claude Code

App shipped. Läuft lokal. Funktionierte. Und schon hasste ich es zu benutzen.

Weil der Flow war: Browser öffnen, Query tippen, zwei Sekunden warten, "copy top N" klicken, zurück zu Claude wechseln, pasten, nach Winkeln fragen. Sechs Schritte für etwas was ich zwanzig Mal die Woche mache. Inakzeptabel.

Am nächsten Tag. Ein Commit. 234 Zeilen. Ich verschob den Algorithmus in meinen persönlichen MCP-Server (der schon meine Medium-Stats-Tools, meinen YouTube-Transcript-Puller, meine Artikel-Archiv-Suche hält). Eine Convex-Action die dieselbe findOutliers-Logik wrappt, exponiert als Tool namens find_youtube_outliers.

Falls MCP neu für dich ist, denk daran als Standard-Protokoll das Claude Code erlaubt, deine Funktionen aufzurufen als wären sie in den Assistant eingebaut. Die Funktion lebt auf deinem Server. Claude entscheidet wann es sie aufruft basierend auf der User-Message.

Jetzt wenn ich mit Claude brainstorme tippe ich einfach "find outliers for X and suggest 5 angles." Claude ruft das Tool selbst auf, liest die Titel, schlägt Hooks vor, kettet oft direkt in get_youtube_transcript beim Top-Ergebnis um das Hook-Pattern zu sampeln, dann in search_articles gegen mein eigenes Archiv um zu checken ob ich den Winkel schon abgedeckt hab.

Kein Browser. Kein TSV. Kein Paste. Kein Context-Switch.

Ein Caveat. Ich ging MCP hier weil ich der einzige User bin und Claude Code der einzige Caller. Für ein Ein-User-Eine-Maschine-Tool ist MCP okay. Falls du planst deinen Outlier-Finder von Cron-Jobs, einem anderen Script, einem Discord-Bot, irgendwo anders aufzurufen, ist ein normales CLI meist die bessere Form. Ich bin tiefer auf die Tradeoffs zwischen CLI und MCP-Integration anderswo eingegangen.

Der echte Shift hier ist nicht MCP vs CLI. Es ist dass dein Tool aufhört eine App zu sein die du öffnest und wird zu einer Capability nach der das Model greift. Gleicher Code. Andere Schwerkraft. 🛠️

Warum jeder "1of10 Alternative" Artikel eine Anzeige ist

Ich googelte "1of10 alternative" bevor ich meins baute. Jeder Artikel auf Seite 1 war ein Affiliate-Stück. Jedes Mal dasselbe Template:

1of10 ist großartig ABER es ist teuer. Hier ist [Affiliate-Link], nur $9/Monat, viel besserer Wert.

Das sind keine Alternativen. Das ist billigere SaaS auf demselben Geschäftsmodell. Du zahlst jeden Monat, die Daten bleiben auf ihren Servern, und du wartest darauf dass ein Produktteam den Filter shipped den du brauchst. Was sie nicht werden, weil ihre Roadmap davon getrieben wird was sie auf Product Hunt bringt, nicht von deiner Brainstorming-Schleife.

Die echte Alternative ist "Ich hab das Ding geschrieben und ich besitze es." Niemand schreibt diesen Artikel weil kein Affiliate-Link drin ist.

Derselbe Move den ich gemacht hab als Anthropic mein $200/Monat Scraping-Setup kilte und ich es für $15 rebuilte. Jedes Mal dasselbe Prinzip: die SaaS ist fast immer ein UI auf etwas Kostenloses. Falls du beschreiben kannst was du willst an ein Model, zahlst du für die Haut.

Was, falls du nicht coden kannst, fair ist. Falls du coden kannst aber lieber zahlst als promptest, auch fair. Aber falls du den Build genießt, wisse dass die Paywall optional ist. Und wird jeden Monat optionaler.

In sechs Monaten wird es fünfzehn neue "1of10 alternative, nur $9/Monat!" auf Product Hunt geben. Alle gebaut auf derselben kostenlosen öffentlichen API. Alle mit einem Dashboard, einem Dark-Mode-Toggle, einem Onboarding-Call den niemand machen will.

Und dann gibt es die, die ihren Editor öffnen. Die AI nutzen um Tools zu bauen in der exakten Form ihres Workflows. Wie japanische Handwerker, die ihre eigenen Meißel für das Holz machen das sie schnitzen.

Kein Churn. Kein AI-Pivot. Nur eine for-Schleife.


Quellen

(*) Das Cover ist AI-generiert. Ich hab "a viral thumbnail outlier" geprompt, nur um zu sehen. Das Model gab ein Konferenz-Poster zurück.