ship the frontend as a client-rendered SPA embedded in the single kepr binary (no Node, no second process, no split proxy): kepr-ui app.config ssr:false+preset static; gen-spa-assets.mjs copies the SPA build into src/web/static/spa + generates spa_assets.zig ( map); server.zig serves /_build/* + /atlas.js from the embed and App.notFound returns index.html for client routing; dropped rawFilePage. Self-hosters point one reverse proxy at :7701 โ€” existing Caddy config unchanged. native+musl+test green; browser-verified home/docs/ops render w/ no console errors. deploy/Caddyfile + CUTOVER.md simplified (v1.35.0)

dev · 16 weeks ago · 2026-06-03 · 13.5 MB

session: phase 10 cutover ยท agent: claude-opus-4-8

$ koh steal kepr.uk/kepr@1f900b0dfd21
·
← d57e533852f8 2beb1f62c124 →
⇓ download .face