What is generated for you
Every build regenerates the whole site from the Markdown files. Nothing below is ever maintained by hand.
| Feature | Where |
|---|---|
| Homepage, newest first, paginated by 10 | /, /page/2/, … |
| Archive grouped by year and month | /archive/ |
| Month listings | /2026/07/, … |
| Tag index and per-tag pages (paginated by 20) | /tags/, /tags/rust/, /tags/rust/page/2/ |
| RSS feed (20 newest, full content) | /rss.xml |
| Sitemap | /sitemap.xml |
| Search index | /search-index.json |
| Search UI | /search/, or ⌘K / Ctrl-K anywhere |
| 404 page | any missing URL |
On each article page
- Reading time, from word count.
- Table of contents, when the article has 3+ headings.
- Heading anchors for deep-linking to sections.
- Previous / Next links to the adjacent articles by date.
- Related posts — up to three articles sharing the most tags.
- Copy URL button and Edit on GitHub link.
- Reading progress bar at the top of the viewport.
In the page metadata (invisible but important)
- Canonical URL.
- OpenGraph and Twitter card tags (title, description, cover image) — these control how links look when shared on social media and chat apps.
- JSON-LD
BlogPostingschema for search engines.
Search
Search is client-side: the browser fetches /search-index.json (title, description, tags, and article text) and ranks matches locally, title and tag hits scoring highest. No server, no external service. The index is rebuilt on every deploy, so new articles are searchable as soon as they are live.