Building this site by hand

· meta, node

I wanted a place to write about what I build without adopting a framework, a theme, or a server. So the site is three things: Markdown files, one Node script, and a stylesheet.

How a build works

build.mjs reads every file in posts/, parses the frontmatter, renders the Markdown to HTML, and writes the result into dist/:

const html = await marked.parse(markdown);   // marked + highlight.js
write(`posts/${slug}/index.html`, layout({ title, description: summary, content: html }));

A GitHub Actions workflow uploads dist/ to GitHub Pages. Nothing runs on the visitor's machine: no JavaScript, no fonts from a CDN, no analytics.

What I left out

If I want something else later, the source of truth is still Markdown files and a projects.js list.

← All posts