Brief-Generator - Briefe nach DIN 5008 im Browser
Browser-App, die Briefe nach DIN 5008 schreibt und so druckt, dass die Anschrift ins Fenster des Umschlags passt. Ohne Account, ohne Installation, offline nutzbar, und jeder Brief bleibt in deinem Browser.
Schreiben, drucken, passt ins Fenster
Der Brief-Generator schreibt Briefe nach DIN 5008 direkt im Browser und druckt sie so, dass die Anschrift im Fenster des Fensterumschlags sitzt. Ohne Account, ohne Installation, und er funktioniert offline.
Die Herausforderung
Ein förmlicher Brief hat ein festes Layout, und der Ausdruck muss es auf Papier treffen, nicht nur am Bildschirm. Die Anschrift muss im Umschlagfenster landen, die Falzmarken müssen dort sitzen, wo das Papier gefaltet wird, und ein Brief, der auf eine zweite Seite läuft, braucht korrekte Seitenumbrüche und Seitenzahlen.
Gleichzeitig stehen in Briefen oft persönliche Daten. Sie nur für ein sauberes Layout über einen fremden Server zu schicken, ist ein schlechter Tausch.
Die Lösung
Der Brief-Generator setzt den Brief im Browser und behandelt den Ausdruck als das eigentliche Produkt. Die Testsuite druckt Briefe in echtem Firefox und Chrome als PDF und vermisst das Ergebnis. Alles, was Nutzer schreiben, bleibt in ihrem eigenen Browser. Eine einmalige Pro-Lizenz wird offline geprüft, die App muss also nie wissen, wer sie benutzt.
Kernfunktionen
- Druck fürs Fenster: Gesetzt nach DIN 5008, damit die Anschrift ins Fenster des Fensterumschlags passt, mit Falzmarken auf der Seite
- Mehrseitige Briefe: Korrekte Seitenumbrüche und Seitenzahlen nach dem Muster „Seite x von y”; Hilfslinien im Editor zeigen, wo die gedruckten Umbrüche liegen
- Unterschriften: Gezeichnet, in einer Schreibschrift getippt oder eingescannt
- Absenderprofile und Logo: Wiederverwendbare Absenderdaten, dazu ein Logo in Pro
- Sicherungsdatei: Export und Import aller Briefe, Unterschriften und Profile
- Offline, ohne Installation: Läuft im Browser und funktioniert auch ohne Verbindung
- Privacy by Design: Keine Accounts; Briefe, Unterschriften und Profile liegen in der IndexedDB und erreichen nie den Server
Technische Umsetzung
Frontend:
- Reine ES-Module, kein Framework, kein Build-Schritt, keine Laufzeit-Abhängigkeiten
- Briefe, Unterschriften und Profile lokal in der IndexedDB gespeichert
- Strenge Content Security Policy: keine Inline-Skripte, keine fremden Origins
Drucktests:
- Die Testsuite druckt Briefe in echtem Firefox und Chrome als PDF
- Wortpositionen im Anschrift- und Kopfbereich werden auf ±0,5 mm genau gegen ein Referenz-PDF geprüft
- Die Logo-Box wird aus den gerasterten Pixeln ermittelt
- Die Seitenhilfslinien im Editor werden gegen die tatsächlichen Umbrüche im Ausdruck geprüft
- Firefox ist der Referenzbrowser; Chrome beachtet orphans/widows, dort können die Umbrüche abweichen
Lizenzen ohne Accounts:
- Kostenlos für bis zu 3 gespeicherte Briefe, 1 Unterschrift und 1 Absenderprofil; Pro kostet einmalig 19 Euro für unbegrenzt viele Briefe, Unterschriften und Profile plus Logo
- Stripe Payment Link → Webhook → ein kleiner Node-Server signiert einen Lizenzschlüssel (ECDSA P-256) und verschickt ihn per Mail über Brevo
- Die App prüft die Signatur offline mit WebCrypto gegen den mitgelieferten öffentlichen Schlüssel
- Keine Datenbank: Stripe führt die Bücher
Deployment & Statistik:
- Statische Seite, ausgeliefert von nginx, containerisiert mit Docker und deployt über Dokploy
- Cookiefreie, selbst gehostete Statistik mit Plausible
Warum es zählt
- Am Papier gemessen: Das Layout wird am echten PDF-Ausdruck aus echten Browsern geprüft, nicht nur am DOM
- Daten bleiben beim Nutzer: Kein Account und keine serverseitige Speicherung von Briefen oder Unterschriften
- Einmal zahlen: 19 Euro einmalig statt Abo
- Kleine Angriffsfläche: Kein Framework, keine Abhängigkeiten, keine Skripte von Dritten