Technik & Hintergrund
Jedes PDF auf dieser Seite entsteht in dem Moment, in dem du auf „erstellen“ klickst — ohne PDF-Server, ohne Headless-Browser, ohne Warteschlange. Ein kleines WebAssembly-Modul baut Rätsel und Seiten und schreibt das PDF direkt — standardmäßig in deinem Browser, auf Wunsch in einem Cloudflare Worker.
- Wasm-Modul
- 2,1 MB
- 970 KiB gzip — vier Generatoren, Layouts, PDF-Writer, Schriften
- Worker gesamt
- 1,27 MB
- gzip, inklusive Seiten und MCP-Server
- Start des Workers
- 26 ms
- laut Cloudflare beim Deployment
- Fertiges Rätsel-PDF
- ≈ 28 KB
- drei Seiten, Schriften eingebettet
Was hier so läuft
Wie viele PDFs die Seite in den letzten 14 Tagen erzeugt hat — im Browser, im Worker und über MCP zusammen. Gezählt wird nur, dass ein Blatt entstanden ist: kein Titel, keine Wörter, keine IP-Adresse, keine Cookies.
11PDFs
im Schnitt 0,8 pro Tag
Architektur
Serverseitig läuft alles in einem einzigen Worker. Formular und KI-Assistent landen beim selben Wasm-Modul; nur PDFs mit einem von der KI gestalteten Layout werden kurz in Workers KV abgelegt, damit die KI einen Link weitergeben kann.
- Cloudflare Worker
- Liefert die Seiten aus (Astro), nimmt Formular-Anfragen entgegen und beantwortet MCP-Aufrufe. Er läuft in Cloudflares Rechenzentren, nah an den Nutzern. Im Worker-Modus und über MCP nutzt die PDF-Erzeugung die Rechenzeit des Workers, anfallende Kosten laufen über dessen Compute bei Cloudflare.
- Wasm-Modul
- In Rust geschrieben und zu WebAssembly kompiliert: die Generatoren für Wortsuchrätsel, Sudoku, Labyrinth und Rechenblatt (gleiche Eingaben und Rätsel-Nummer ergeben immer dasselbe Blatt), ihre Seitenlayouts und lightweight-pdf. Alle Vorlagen teilen sich Bibliothek und Schriften — jede weitere kostet nur ein paar Kilobyte.
- Workers KV
- Nur für den MCP-Weg mit eigenem Layout: Das PDF liegt eine Stunde bereit und verschwindet dann von selbst. Formular-PDFs werden nirgends gespeichert.
lightweight-pdf
lightweight-pdf ist eine Rust-Bibliothek für wiederkehrende Dokumente: Rechnungen, Angebote, Lieferscheine, Berichte, Urkunden — und eben Rätsel. Sie ist bewusst kein Satzsystem. Statt einer eigenen Auszeichnungssprache gibt es eine feste Auswahl an Bausteinen, aus denen ein Dokument zusammengesetzt wird.
- Bausteine statt Markup: Text, Zeilen und Spalten, Tabellen, Linien, Abstände, Listen, Bilder. Das Gitter eines Wortsuchrätsels ist zum Beispiel eine Tabelle mit festen Spaltenbreiten.
- Eigener PDF-Writer: Objekte, Querverweise und Streams schreibt die Bibliothek selbst, Schriften werden auf die verwendeten Zeichen reduziert und eingebettet. Einzige Pflicht-Abhängigkeit ist ein Crate zum Lesen von Schriftdateien.
- Seitenumbrüche und Seitenzahlen: Das Layout läuft in zwei Durchgängen, damit „Seite 2 von 3“ in der Fußzeile stimmt.
- Warnungen statt stiller Fehler:Abgeschnittener Text oder fehlende Zeichen werden gemeldet. Die KI bekommt diese Hinweise mit und kann ihr Layout nachbessern.
- JSON-Format mit Schema: Ein Dokument lässt sich auch als JSON beschreiben. Darauf baut der MCP-Server auf — die KI liefert JSON, das Modul setzt es als PDF.
Optional kann die Bibliothek auch PDF/A-3b, E-Rechnungen nach ZUGFeRD/Factur-X und barrierefreies PDF/UA erzeugen. Mehr in derDokumentation.
Warum nicht mehr Typst?
Die erste Version dieser Seite lief mit Typst, einem modernen Satzsystem mit eigener Auszeichnungssprache. Typst ist hervorragend, wenn es um Formeln, lange Texte oder anspruchsvolle Typografie geht — und das Rätsel sah damit gut aus.
Das Problem war die Größe. Als WebAssembly bringt Typst über 20 MB mit, komprimiert rund 9 MB für einen einzigen Dokumenttyp. Ein Cloudflare Worker darf komprimiert höchstens 10 MB groß sein, im Free-Plan 3 MB. Ein zweiter Generator hätte schon nicht mehr hineingepasst. lightweight-pdf kommt für dasselbe Rätsel mit rund 0,9 MB aus, und Platz für weitere Vorlagen bleibt.
| Merkmal | Typst | lightweight-pdf |
|---|---|---|
| Ansatz | Satzsystem mit eigener Auszeichnungssprache | Bausteine (Text, Zeile, Spalte, Tabelle …) per Code oder JSON |
| Wasm, komprimiert | rund 9 MB | rund 0,9 MB samt Schriften |
| Stark bei | Formelsatz, langen Texten, anspruchsvoller Typografie | wiederkehrenden Dokumenten mit festem Aufbau |
| Passt in einen Worker | ein Dokumenttyp, im Free-Plan gar nicht | ja, auch mehrere Vorlagen im Free-Plan |
Typst bleibt die bessere Wahl für Skripte, Bücher oder alles mit Formelsatz — dort, wo es auf einem Server oder lokal laufen darf. Für viele kleine Vorlagen am Edge passt eine schlanke Bibliothek besser.
Zwei Wege mit demselben Modul
Weil das Modul so klein ist, kann es an zwei Stellen laufen. Die Formulare nutzen standardmäßig den Browser; auf der Startseite lässt sich auf den Worker umstellen, bis du den Tab schließt. KI-Assistenten laufen immer über den Worker.
Im Worker
Das Formular schickt die Eingaben an den Worker. Dort erzeugt das Wasm das PDF und schickt es als Antwort zurück. Der Browser lädt kein Wasm, die Ausgabe bleibt zentral steuerbar.
Im Browser
Der Browser lädt das Wasm einmal und erzeugt das PDF selbst. Die Eingaben verlassen den Rechner nicht — der Server liefert nur statische Dateien aus und bekommt danach ein leeres Signal, damit das Blatt oben mitgezählt wird.
Für KI-Assistenten
Über den MCP-Server erstellen Claude und andere Assistenten Rätsel direkt — im Standardlayout oder mit einem selbst gestalteten Layout als JSON.