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 Helvetica Neue as the main font and Geist Mono as the mono font. Both are locally loaded, not from a CDN.
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.