← Root · Pages & Routing Module
| Route | File | Rendering | Purpose |
|---|---|---|---|
/ |
index.astro |
SSR | Homepage |
/projects |
projects/index.astro |
SSR | Project listing + filter |
/projects/[slug] |
projects/[slug].astro |
SSR | Django metadata + optional MDX body |
/blog |
blog/index.astro |
SSR | Blog listing + filter |
/blog/[slug] |
blog/[slug].astro |
SSR | Blog post detail (MDX) |
/about |
about.astro |
SSR | Bio, education, skills |
/404 |
404.astro |
SSR | Custom 404 page |
/api/chat |
api/chat.ts |
API | Claude chatbot endpoint |
/api/chat{ messages: Array<{ role, content }> }{ message: string }ANTHROPIC_MODEL (default claude-haiku-4-5-20251001), max 300 tokenssrc/middleware.ts — Maintenance mode gate controlled by MAINTENANCE_MODE env var. API routes bypass maintenance check.
BaseLayout from @layouts/Astro.params.slug through the Django project API, then look up an optional same-slug MDX bodygetEntry() from content collectionsrender() → <Content /> component when an MDX body exists