This blog runs on Eleventy (11ty), a simple and fast static site generator. Here's a quick overview of the setup.

Project structure

Posts are plain Markdown files inside src/posts/. A directory data file (posts.json) applies shared defaults to all posts — layout, author, and the posts collection tag — so each post's frontmatter stays minimal.

Pagination

The homepage lists up to 5 posts per page, using Eleventy's built-in pagination over the collections.posts collection.

Search

Pagefind runs as a post-build step, indexing the generated HTML in _site/. The search page at /search/ loads the Pagefind UI directly from the generated assets.

Deployment

Pushed to GitHub, picked up by Netlify on every push to main. The build command is:

npm run build

Which runs eleventy followed by pagefind --site _site.