Built With #
This site is built using Eleventy (v3.1.2), a powerful static site generator. The source code is available on Codeberg.
Key features and plugins:
- Syntax highlighting with Prism via @11ty/eleventy-plugin-syntaxhighlight
- RSS/Atom feeds and JSON Feed via @11ty/eleventy-plugin-rss
- Responsive image optimization with @11ty/eleventy-img
- External link security (automatic
rel="noopener noreferrer") with visual indicators - JSON-LD structured data for better SEO
- WCAG 2.1 Level AA accessibility compliance
Hosting #
The site is hosted on a Hetzner VPS running Debian. The web server is Caddy, which handles HTTPS automatically.
I use Porkbun as my DNS registrar.
Design & Theme #
The design follows a brutalist minimalism philosophy—focusing on readability, accessibility, and semantic structure over decorative elements.
Design principles:
- Custom CSS with no frameworks or dependencies
- System fonts for zero latency and familiarity
- AAA color contrast ratios in both light and dark modes
- Semantic HTML5 with proper landmarks and ARIA labels
- Responsive design with a mobile-first approach
- Skip links, focus indicators, and keyboard navigation support
Typography, spacing, and layout are intentionally minimal to put the emphasis on content.
Content Workflow #
Posts are written in Markdown and version-controlled with Git. I write and edit posts locally using a combination of Typora and Visual Studio Code.
Drafts live in src/drafts/ where I can work on multiple posts at once. When a draft is ready, I set draft: false in the frontmatter and run npm run prep-post to move it to its final location, optimize images, and generate the URL slug.
Build and deployment:
npm run prep-post # Preview draft moves (dry run)
npm run prep-post -- --run # Move ready drafts to final location
npm run publish # Build with Eleventy and rsync to production
npm run syndicate # Cross-post to Mastodon and Bluesky
Links I share via Pinboard are automatically pulled into the site and published via a cron job on my workstation. No CMS, no database, no SaaS-hosted build process—just text files, rsync, and a web server.
Content #
Beyond blog posts, the site includes a book log, watch log, and links for sharing interesting things I've found on the web. Each has its own dedicated feed.
Feeds #
Subscribe to updates via Atom or JSON Feed:
| Feed | Atom | JSON |
|---|---|---|
| Everything (firehose) | /feed.xml | /feed.json |
| Posts only | /posts/feed.xml | /posts/feed.json |
| Books only | /books/feed.xml | /books/feed.json |
| Watching only | /watching/feed.xml | /watching/feed.json |
| Links only | /links/feed.xml | /links/feed.json |
Each feed includes the 10 most recent entries with full content.
Analytics #
This site uses Fathom Analytics, a privacy-focused analytics platform that doesn't use cookies or track individual users. It provides simple, anonymous traffic insights without collecting personal data or compromising your privacy.
I use Fathom to understand which pages are being read and where visitors come from, so I can improve the site without invading anyone's privacy.
Revisions #
- 2026-02-21 - Migrate hosting from Capsul.org to Hetzner VPS, update content workflow and feeds sections
- 2026-02-14 - Add book log, watch log, content-specific feeds, and social cross-posting
- 2026-02-12 - Major redesign: brutalist minimalism theme, accessibility improvements, external link indicators, Prism syntax highlighting, feeds, and improved build workflow
- 2025-01-31 - Remove Buttondown and EchoFeed from content workflow section