Docs restructure — learnings + plan
Synthesis of how Bun, Next.js, and Resend (all effectively Mintlify-shaped) build their docs, and the plan to apply it here. This is the working spec for the restructure.What the three best-in-class docs do (converged)
- Tabs = reader intent, stated to the reader. The tutorial / guide / reference triad:
- Learn in order (Getting Started / tutorial), look up a how-to (Guides), look up a fact (Reference / Concepts / how-it-works). Next.js literally names them on the landing page.
- Drop numeric prefixes. Order lives in
docs.json, never in the slug. Slugs are hyphenated, keyword-rich topic/question phrases; the URL reads as a breadcrumb. Troubleshooting/FAQ slugs are the literal question (Resend:/knowledge-base/how-do-i-avoid-gmails-spam-folder). - Answer-first page anatomy. Front-matter
title(H1) + a one-linedescriptionthat is the answer (rendered as the subtitle + meta description; never repeated in the body). Then lead with value — an example,<Steps>, or a decision table — in the first screen. Self-contained, anchor-linkable H2s. “See X” / “Next steps” sign-off. No throat-clearing. - Decision/summary table at the top of any “several ways to do X” page (Next.js redirects page).
- “Good to know” callouts for gotchas; dense cross-linking, no dead ends.
- Mintlify components used purposefully:
<Steps>(procedures),<CardGroup>/<Card>(landing routers + next-steps),<Tabs>/<CodeGroup>(variants),<Accordion>(FAQ / hide long secondary steps),<Note>/<Warning>/<Tip>callouts,<Frame>(screenshots),<ParamField>(reference). - GEO:
descriptionwritten as the answer; question-shaped titles/slugs;llms.txtindex linked from the landing; each page also served as clean markdown. (We already generatellms.txt+.md.)
Our new information architecture
Map our content onto the triad. Tabs indocs.json:
| Tab | Dir (URL) | What it is |
|---|---|---|
| Home | index | Landing / router — cards + CTAs, not prose. |
| Guides | platform/ | The how-to library — task-first “How to…” pages. Landing = the How-to index (how-to), then task groups (Setup, Keywords, Landing pages, Blog, Publish, Analytics, Compliance, Diagnose). (Merges the old “How-to” + “Part 2 Platform” tabs.) |
| Concepts | theory/ | The Synscribe way of SEO/GEO — the “why / how it works.” |
| Playbooks | sops/ | SOPs for running accounts at scale (AM-facing). |
| Build docs | (meta) | Internal: plan, journal, conventions, gap register, mined sources. |
Note on dir naming: the founder’s example waspart-2-platform → platform. I read that as “strip thepart-N-prefix” and named the three sectionsplatform/theory/sops(clean, no numbers), with intent-named tabs (Guides / Concepts / Playbooks). Easy to rename the dirs toguides/concepts/…if preferred.
Slug scheme
- Dirs:
part-1-theory → theory,part-2-platform → platform,part-3-sops → sops. - Files: strip the numeric prefix.
2-0-2-working-across-clients → working-across-clients,1-4-serp-cliff → serp-cliff,3-1-onboarding-month-1 → onboarding-month-1,2-7-1-set-up-evaluator → set-up-evaluator.index.mdandhow-to.mdunchanged. - Order is preserved by
docs.json(explicit page arrays), not filenames.
Page-anatomy template (applied to every page in the writing pass)
- No body
# H1(Mintlify renders the title). (Already stripped from all pages.) - No stacked intro — one answer-first lead, not “Answer box” + a second intro paragraph that repeats it.
- Multi-option pages get a decision table up top. Gotchas go in
> **Good to know:**callouts.
Execution phases
- Slugs + IA (mechanical, scripted, fully tested): rename dirs/files, rewrite all internal links,
rebuild
docs.jsontabs, rebuild thehow-torouter. Verify: mint parse + internal links + anchors. - Writing pass (per-cluster subagents): apply the page-anatomy template; reconcile the Answer-box/intro duplication; add decision tables/callouts where they help; keep facts/prompts/videos.
- Audit: browser-test every page (rendered, no dup title/body), independent judge, full link test (files + anchors) on the running site; fix everything found.