Campaign site with sealed commitments
Themeable, self-hosted candidate website whose public promises are SHA-256 sealed.
A server-rendered campaign website for a parliamentary candidate, built on Node 22's built-in SQLite with Express and Multer as the only dependencies.

A server-rendered campaign website for a parliamentary candidate, built on Node 22's built-in SQLite with Express and Multer as the only dependencies.
The owner manages pages, publications, gallery, messages and settings from an admin panel; the signature feature is a Registry of Commitments where each published promise is sealed with a SHA-256 hash that visitors can re-verify in the browser, making retroactive edits detectable.
Three complete visual themes (business, Swiss-typography manifesto, vintage newspaper) restyle the same semantic markup, and a live SSE strip shows visitors online, an election countdown and registry updates.
What it does
- Admin: pages with lightweight markdown, commitments with status timeline, publications with tags, gallery, feedback inbox, settings
- Immutable sealed commitments with in-browser hash verification and pure-JS fallback for HTTP
- Theme system (CSS Zen Garden style): per-visitor switcher stored in a cookie, admin default, hot-loaded theme folders
- Live strip over SSE: visitors online, countdown, message counter, registry-updated notices
- Zero-build, single-process deployment; backup = one SQLite file + uploads folder
Real client site delivered in days with no build step and two npm deps; cryptographic accountability feature; three full redesigns via themes. Photos in the repo are of the client (a public figure) — use logos only, not portraits, on the portfolio.
Want something like this?
I build it live on a Zoom call, you watch the screen, the timer stops when you say stop. First 15 minutes are free.