Personal Website
Personal site built with Next.js (App Router, static export) and deployed on
Vercel. Content lives under content/ (content/posts/, content/books/,
content/loops/, content/data/, content/books-static/), with site-wide
settings in site.config.mjs — those are the single source of truth. Page
sources sit beside the route that renders them (app/<route>/content.md).
- Live site:
https://subramanya.ai
Quickstart
bun install
bun run dev
Validation
bun run build
bun run build:export
bun run parity
node scripts/validate-content.mjs
python3 scripts/validate_api_output.py out
bun run build is the standard deployment build (what Vercel runs);
bun run build:export writes the static export to out/, which
bun run parity diffs against the frozen URL manifest in
scripts/parity/manifest.json — every published URL must keep resolving with
no canonical drift.
Full pre-deploy steps, including post-deploy live checks: docs/deploy-checklist.md.
Deployment
Pushing to main deploys production automatically — the Vercel project is
git-connected. Do not deploy manually.
Documentation
docs/architecture.md: system overview and change mapdocs/development.md: contributor and maintenance workflowdocs/content-model.md: front matter and data contract
Automation
- Scheduled analytics refresh:
.github/workflows/update-analytics.yml - Analytics fetch script:
scripts/fetch_analytics.py - Analytics data output:
content/data/view_count.json