This site is hand-written HTML, and that is on purpose
There is no framework behind this page. No static site generator, no bundler, no
node_modules, no CI pipeline that turns Markdown into HTML. The src folder
is the site. Deploying it copies that folder to S3 and invalidates a CloudFront distribution. The
deploy script is four lines long.
That is an unfashionable choice, so it is worth saying why.
The maintenance is in the tooling, not the content
A personal site changes a handful of times a year. A modern toolchain changes considerably more often than that. Every time I come back to a project built on a generator, the work is not writing — it is a dependency upgrade, a breaking change in a plugin, a Node version that no longer matches, a lockfile that will not resolve. The content was fine. The scaffolding rotted.
HTML does not rot. A page written in 2014 renders today. That asymmetry only grows the longer the site lives.
The cost is real, and it is duplication
I am not going to pretend this is free. The header, the navigation and the script tags are copied into every page, and when the navigation changes I have to change it everywhere. That is exactly the problem templating exists to solve, and on a site with two hundred pages I would solve it that way.
On a site with a dozen, a careful find-and-replace is cheaper than a build system I have to keep alive. The break-even point is real, and most personal sites never reach it.
What I do keep
- A real CSS file per concern. The template's stylesheet stays untouched so it can be updated; anything I add lives in its own file.
- Vendored libraries. Bootstrap and the rest sit in
assets/vendor, pinned by being copied. They cannot change under me. - One deploy command. If deploying is hard, updates stop happening.
The one thing worth automating
If any of this grows past hand-editing, the thing to automate first is not the HTML. It is the index — the blog listing, the games shelf, anything that has to be regenerated whenever a new item appears, because that is the step a human will forget. The pages themselves can stay hand-written for a long time after that.
Until then: a folder of files, copied to a bucket. It has worked for thirty years.