Diese Seite ist die Demo

301.sh ist ein Blog darüber, was Cloudflares Free-Tarif wirklich kann. Und die Seite läuft selbst komplett auf diesem Free-Tarif – statische Seiten, Suche im Browser, zur Build-Zeit gezeichnete Share-Cards, eine Oberfläche für KI-Leser und Workers, die jeden neuen Artikel in vier soziale Netzwerke posten. Kein Server, keine Datenbank, keine monatliche Rechnung. Hier ist der ganze Stack.

Die Texte haben eine Aufgabe: ein echtes Problem auf Cloudflare lösen – Weiterleitungen, DNS, HTTP-Header, die Grenzen des Free-Tarifs – und jede Zahl gegen die aktuelle Dokumentation prüfen, mit dem Datum der Prüfung. Wo der native Cloudflare-Weg endet, übernimmt 301.st, die Plattform, zu der dieser Blog gehört.

Der Stack

Eine Handvoll Bausteine, jeder so gewählt, dass das Ganze kostenlos bleibt.

Statisches HTML am Edge

Astro rendert jede Seite zur Build-Zeit in reines HTML; Cloudflare liefert es über Workers Static Assets aus. Der Leser bekommt HTML und ein paar Kilobyte CSS – fast kein JavaScript läuft.

Workers Static Assets · 0 € Hosting

Inhalte sind Markdown in git

Kein CMS, keine Datenbank, kein Login. Ein Artikel ist eine Datei, eine Änderung ein Pull Request, ein Merge das Deployment – und jede Cloudflare-Zahl trägt das Datum ihrer letzten Prüfung.

git · keine Datenbank

Suche läuft im Browser

Pagefind baut beim Deploy einen statischen Index und durchsucht ihn per WebAssembly direkt im Browser. Kein Suchserver, keine Kosten pro Anfrage – der Index sind einfach weitere statische Dateien.

Pagefind · clientseitig

Share-Cards zur Build-Zeit

Jedes Artikelbild – und jede Social-Card – entsteht aus Titel und Tag: SVG, Text in Pfade umgewandelt, als PNG gerendert, ein Layout pro Plattform. Deterministisch und reproduzierbar, ohne Design-Tool und ohne KI.

SVG → PNG · reproduzierbar

Eine Oberfläche für KI-Leser

Ein llms.txt-Index, ein Markdown-Zwilling jeder Seite und Content Negotiation über den Accept-Header: ein schlanker Worker gibt einem Agenten sauberen Quelltext statt Seiten-Chrome.

llms.txt · Content Negotiation

Und sie veröffentlicht sich selbst

Den Artikel zu schreiben ist der letzte Schritt von Hand. Ist er veröffentlicht, landet er in einem kleinen JSON-Feed, und für jedes Netzwerk weckt ein eigener Cloudflare-Worker per Cron auf, nimmt den ältesten noch nicht geposteten Artikel und schickt genau einen – Titel und Link, die passende Card, die Tags als netzwerkeigene Hashtags. Was schon draußen ist, merkt sich ein KV-Namespace. Jedes Netzwerk ist ein eigener Worker mit eigenem Token und Zeitplan – fällt einer aus, laufen die anderen weiter.

Vier Netzwerke, vier Cron-Workers, ein KV-Store – alles innerhalb der Grenzen des Free-Tarifs. Weitere warten hinter der Freigabe der Plattformen.

Worum es geht

Jeder Artikel ist unter der Cloudflare-Funktion einsortiert, um die es wirklich geht. Zieh an einem Faden: