This site has no server, no database and no admin panel. It's a folder of
Markdown in a Git repo, and a git push publishes it in about 30 seconds.
The pieces
- Nicolino turns Markdown into HTML. It's a single static binary that builds this site in under a second.
- GitHub Actions runs two workflows.
site.ymlbuilds and deploys the site, anddns.ymlapplies DNS changes with DNSControl. - GitHub Pages serves the result over HTTPS, at no cost.
- Cloudflare hosts the DNS, but its records are defined in the repo, not clicked together in a dashboard.
Why do it this way
- Push to deploy. Committing is publishing, and a typo fix goes live in about
30 seconds. Pull requests build the site first, so a broken page never reaches
main. - Static output. The result is plain HTML and CSS, with nothing running on a server: no runtime to patch, no database to back up and no login to attack. It's fast everywhere and served from a CDN.
- Free, managed hosting. GitHub Pages handles hosting, the CDN and TLS certificates, so there are no servers or renewals to look after.
- Everything as code, DNS included. The DNS records live in
dns/dnsconfig.js. A change shows a preview on the pull request and is applied only after approval. Records can't drift and every change has a history. - Live data, baked in at build time. The GitHub heatmap and the Claude Code usage panel on the home page are computed during the build and embedded as SVG. Visitors' browsers make no API calls and the site keeps no tokens. A daily scheduled build keeps them fresh.
- CI only when needed. Path filters decide what runs. Editing a post rebuilds the site, editing DNS runs the DNS job, and editing the README runs nothing.
The whole setup is in the 3ll34ndr0/yo repository, including the README with every decision and why it was made.