Built with Nimbus (Astro + Cloudflare), deployed to Cloudflare Pages.
pnpm install
pnpm devpnpm buildOutput goes to dist/.
All posts live under src/content/docs/posts/ and render at /posts/<slug>/.
Example: nested post
- Create the file inside any folder structure you want:
src/content/docs/posts/programming-languages/go/introduction-to-go.mdx
- Add YAML frontmatter:
---
title: Introduction to Go
description: Getting started with Go programming.
date: 2026-07-23
---- Run the generator to register the file:
python3 scripts/generate-post-content.py- Done — the post renders at
/posts/introduction-to-go/. The sidebar mirrors the folder structure.
The slug-map is auto-generated — the filename (without .mdx) becomes the URL slug. The folder path controls sidebar nesting. Both are independent — you can reorganize folders freely without changing URLs.
Quick steps summary:
# 1. Create the .mdx file anywhere under src/content/docs/posts/
# 2. Regenerate imports and slug-map
python3 scripts/generate-post-content.py
# 3. Check it locally
pnpm devFiles can be nested arbitrarily. The slug-map decouples file location from URL - reorganize folders without breaking links.
src/content/docs/posts/
├── rust/
│ └── brainfuck.mdx → /posts/learn-rust-basics.../
├── philosophy/
│ └── plato/
│ └── apology.mdx → /posts/apology/
└── misc/
└── stoicism.mdx → /posts/lessons-in-stoicism/
Add the series slug to src/archived-series.json. All posts in that series will show an "Archived" badge in the sidebar.
["learning-rust", "backend-engineering-with-axum"]Add to frontmatter:
sidebar:
hidden: trueThe post remains accessible via its URL.
Push to main. Cloudflare Pages auto-deploys using the build command pnpm build and output directory dist.