Docs
Writing + curation workflow
Sanity as source of truth, ingest for drafts only, scripts for repeatable deploys.
This project uses Sanity as the single publishable content source, ingest scripts as a draft-only curation entrypoint, and preflight / release for repeatable shipping.
1. Technical writing (original)
- Run
npm run studio:dev. - Create or edit a
postand write the body in Portable Text. - Fill
excerpt/sourceUrlwhen relevant. - Publish — the post appears on
/blog, sitemap, and RSS (when deployed withNEXT_PUBLIC_SITE_URL).
2. Curation (external sources → drafts → your review)
- Manual URLs: one URL per line in
data/manual-urls.txt, then
npm run ingest:manual -- --urls data/manual-urls.txt --dry-runbefore writing. - RSS auto mode: copy
data/auto-sources.example.jsontodata/auto-sources.json, tune keywords/feeds, then
npm run ingest:auto -- --config data/auto-sources.json. - Scripts only create
postdocuments under_drafts.*— they are hidden from public listings until you publish. - In Studio, add your take, verify attribution, then publish.
Note: some publishers return 403 to scripted fetches; see root README.md for INGEST_JINA_ON_403 / INGEST_USER_AGENT.
3. Ship checklist
npm run lintnpm run preflightnpm run release:previewornpm run release:prod(Vercel CLI logged in)
4. How this differs from “template stacking”
Layout patterns are inspired by popular Next.js portfolio/blog templates, but Nextra is not bundled here so next-intl + Sanity drafts stay maintainable. If you want a dedicated docs site, add Nextra in a separate workspace package rather than mixing it into this App Router tree.