Colophon
How this website is built, and the principles behind it.
Principles
- Zero JavaScript by default: Pages ship as plain HTML and CSS. Some scripts are only loaded when absolutely necessary (e.g., search, newsletter anti-spam).
- Fast and lightweight: Every page targets perfect Lighthouse scores, or at least it tries to.
- Own the content: No walled gardens. Everything is Markdown files in a GitHub repo.
Stack
- Eleventy (11ty): Static site generator (v3). Templates are Nunjucks.
- Netlify: Hosting and serverless functions.
- GitHub: Source control. Push to deploy.
- Markdown: All content is written in Markdown with YAML frontmatter.
Images
- Sharp: Resizes and converts images to WebP locally, here's how I use it.
- Satori: Generates OG social sharing images (1200x630) automatically for every post.
Newsletter
- Listmonk: Self-hosted newsletter and mailing list manager.
- SMTP2GO: SMTP delivery.
- Cloudflare Turnstile: Anti-spam for the signup form.
See how my newsletter is set up, I have written a detailed post about it.
Analytics
- Umami: Self-hosted, privacy-friendly analytics. No cookies.
Search
Client-side fuzzy search powered by Fuse.js. The search index is generated at build time as a static JSON file: no server required.
Feeds
Two Atom feeds are available: one for blog posts and one for raw notes. More on the feeds page.
Typography
Currently using system fonts – system-ui on macOS/Windows, Segoe UI on Windows, Roboto on Android, and Arial as fallback. For code, using the system monospace font stack.
Source
I have been writing online since 2015, but on a different domain and the content is lost as well. I am on this domain since 2018-19 using WordPress, but later I migrated from WordPress to 11ty.