Skip to content
Notable Nomads

Own productLive

German Letter

DIN 5008 letters in the browser, ready for a window envelope.

Role
Design and engineering
Year
2026
The German Letter form beside a live DIN 5008 preview of a sample letter

Overview

Writing a formal letter in Germany means following DIN 5008: where the return address goes, where the recipient sits so it shows through the envelope window, how the date and references line up. German Letter does the layout, so the writer only fills in what the letter says.

It started as a Typst template we use for our own letters and grew into a web app on the same template. The page typesets the letter in the browser and hands back a PDF; there is no account, no server and nothing stored beyond a draft in that browser.

Highlights

  • Live preview of the real PDF as you type
  • DIN 5008 Form B, so the address fits a DL or C6/5 window envelope
  • Letters in German or English, with the right salutation, closing and date format
  • Reference rows, attachments and an optional signature image
  • The draft stays in the browser until you clear it; the signature is never stored

How it's built

  • Typst compiled to WebAssembly with typst.ts, running in a Web Worker so the form stays responsive
  • The same template the command-line archive uses, kept compiling on the Typst version typst.ts bundles
  • A Content-Security-Policy that only allows connections to its own origin, so the privacy claim is checkable in DevTools
  • The build fails if anything from the private sender profiles or archived letters reaches the bundle
  • Served as static assets from a Cloudflare Worker, deployed from main

Stack · 5

  • TypeScript
  • React
  • Vite
  • Cloudflare
  • typst

Want something like this?

Tell us what you are building. It takes about three minutes, and a real engineer reads every brief.