Built with MkDocs Material from the repo root (mkdocs.yml, site_hooks.py, overrides/, assets/). The notes are unchanged.
Navigation is generated from each module README's table, so adding a note to a module README adds it to the site.
Links to code and data files point to GitHub automatically.
Logo: assets/logo.svg (icon), assets/logo-wordmark.svg and assets/logo-wordmark-dark.svg, PNG icons for browsers and phones.
SEO: descriptive page titles, meta descriptions from each note's first section, canonical URLs, sitemap.xml with each note's review date, robots.txt, Open Graph and Twitter cards, schema.org structured data (Course on the home page; TechArticle/LearningResource and breadcrumbs on notes), web app manifest, and llms.txt for AI assistants.
The site URL comes from the SITE_URL repository variable, so the custom-domain move is a config change.
Preview locally: make site-serve.
Watch item: MkDocs 1.x is no longer actively maintained, and the Material team points to its successor (Zensical). The build is pinned and works today. Re-evaluate in 2027.
Projects use deliberately simple, regex-based guardrails and fake models so they run offline. Each README suggests swapping in real libraries and models as an exercise.
P5's rate limiter keeps counters in memory, so the container runs one worker. Verified: with two workers each process counted separately and no requests were limited.
Prices and plan names in the tool comparison are as of 14 Nov 2026 and need a monthly re-check.