Blocked by #196 and #198.
Competitions is a new user-facing vertical and it needs a docs page, the way the map and calendar have one.
Files
src/app/docs/(article)/competitions/page.tsx - new
src/lib/docs-nav.ts - add the entry
How docs work here
Docs are hand-authored React Server Components, one page.tsx per route, driven by the docsNav manifest in src/lib/docs-nav.ts:40-193. There is no markdown pipeline for these pages. src/app/docs/(article)/calendar/page.tsx (99 lines) is the closest model in both length and subject.
Add a DocsNavEntry with group: "Guides", a lucide icon, and a one-line description. Array order in docsNav is the sidebar order, the pager order and the index order all at once, so place it next to the calendar entry.
Available building blocks: CalloutCard, StepCard, CodeBlock (async RSC using shiki), Cards. src/components/docs/docs-prose.tsx exists but is currently unused by any page; check what other pages actually use before reaching for it.
Content
- What the competitions catalog is and what it is not
- Browsing: search, category chips, filters, list and grid
- Deadlines and countdowns, and specifically that estimated dates are marked as estimated
- Country pathways: what a qualifier track is, why it matters, how to read one
- Saving competitions, and that counts only appear once a few people have saved
- How the calendar picks what to show you
- Contributing a competition, linking to
data/competitions/CONTRIBUTING.md
- Where the data comes from and how to report a wrong date. Make this easy to find, because a wrong date is the failure mode that costs the most trust.
Also
scripts/build-docs-meta.mjs picks up the new page automatically via the prebuild hook. src/lib/docs-meta.generated.json is committed, so regenerate and commit it.
src/app/sitemap.ts:20 reads docsNav, so the route is picked up with no extra work.
- Check whether
src/components/docs/doc-cta-block.tsx (which hardcodes /map and /calendar links) should now offer /competitions as well.
Acceptance criteria
Blocked by #196 and #198.
Competitions is a new user-facing vertical and it needs a docs page, the way the map and calendar have one.
Files
src/app/docs/(article)/competitions/page.tsx- newsrc/lib/docs-nav.ts- add the entryHow docs work here
Docs are hand-authored React Server Components, one
page.tsxper route, driven by thedocsNavmanifest insrc/lib/docs-nav.ts:40-193. There is no markdown pipeline for these pages.src/app/docs/(article)/calendar/page.tsx(99 lines) is the closest model in both length and subject.Add a
DocsNavEntrywithgroup: "Guides", a lucide icon, and a one-line description. Array order indocsNavis the sidebar order, the pager order and the index order all at once, so place it next to the calendar entry.Available building blocks:
CalloutCard,StepCard,CodeBlock(async RSC using shiki),Cards.src/components/docs/docs-prose.tsxexists but is currently unused by any page; check what other pages actually use before reaching for it.Content
data/competitions/CONTRIBUTING.mdAlso
scripts/build-docs-meta.mjspicks up the new page automatically via theprebuildhook.src/lib/docs-meta.generated.jsonis committed, so regenerate and commit it.src/app/sitemap.ts:20readsdocsNav, so the route is picked up with no extra work.src/components/docs/doc-cta-block.tsx(which hardcodes/mapand/calendarlinks) should now offer/competitionsas well.Acceptance criteria
docs-meta.generated.jsonregenerated and committed