{ "stack": [ { "k": "Generator", "v": "Zola: statisk output, view transitions, page bundles til bloggen" }, { "k": "Runtime", "v": "Ingen Node i byggekæden: Zola er én binær, og scripts i CI er Python" }, { "k": "CSS", "v": "Tailwind 4 (standalone-CLI) med egne design-tokens; dark/light sat pre-paint uden flash" }, { "k": "Typografi", "v": "Inter Variable, self-hosted woff2 (ingen Google Fonts-kald)" }, { "k": "JS i browseren", "v": "Ingen frameworks. Lidt vanilla til tema-toggle, paletten og service workeren" }, { "k": "PWA", "v": "Håndskrevet service worker, siden virker offline og kan installeres" }, { "k": "Kommentarer", "v": "Comentario, self-hosted, login via min egen Authentik" }, { "k": "Analytics", "v": "Matomo, self-hosted og first-party, ingen tredjeparts-trackere" }, { "k": "Hosting", "v": "Alpine LXC med nginx på min egen Proxmox-node, bag NPMplus som edge" }, { "k": "CI/CD", "v": "Gitea Actions på egne runnere: push til master → build → atomisk swap af webroot" }, { "k": "Struktureret data", "v": "JSON-LD: Person, ProfilePage, FAQ, BlogPosting, BreadcrumbList, plus llms.txt til LLM’er" } ] }