Content & SEO kickoff
Six pre-work items per the brief. Read these, push back on anything you want to change, then we kick off Phase 1.
1. CMS recommendation
Recommendation: MDX in repo, with Velite or Contentlayer for type-safe frontmatter. Skip the headless CMS.
The case against Sanity / Contentful for this project:
- Content team of one (you, eventually one writer). The "non-dev editing UI" advantage doesn't apply.
- ~138 pages authored over 14 weeks, edited rarely after. Not a high-churn editorial newsroom.
- Cost: Sanity starts at $99/mo for a real plan, Contentful at $300/mo. Versus $0 for MDX-in-repo.
- External CMS adds an auth boundary, a webhook, a build trigger, and a separate place to break.
- Existing /blog already inlines content in a TS file. MDX is the natural next step, not a regression.
The case for MDX-in-repo:
- Content lives in Git. Reviewable in PRs, diffable, versioned.
- No vendor lock-in. If we hire a content team later, we migrate to Sanity in a week.
- Velite gives us type-safe frontmatter (title, slug, date, sources) with zod schemas — catches typos at build time.
- Same authoring style as docs (Nextra is also MDX).
- Image co-location: drop a screenshot next to the .mdx file.
Migration plan if you ever change your mind: Velite output schema → Sanity types → one-time content import script. Maybe a week of work.
2. Docs framework recommendation
Recommendation: Nextra.
Why not Docusaurus: it's React-heavy with a more SaaS-template feel, and the default theme doesn't match the editorial Nexpura aesthetic without significant overrides. Two days of theme fighting we don't need.
Why not Mintlify: closed-source, paid, hosts your docs on their domain by default (workarounds exist). The vendor relationship is another moving part.
Why Nextra:
- Built on Next.js, so it lives in the same app. No subdomain, no proxy gymnastics, same deployment pipeline.
- Sidebar nav, search, breadcrumbs, edit-on-GitHub link all out of the box.
- MDX content — same authoring style as the blog. One mental model.
- The default theme is closer to "documentation as a publication" than "documentation as a SaaS landing page."
- We can override the layout for /docs to use our serif headlines and stone-200 borders. Half a day, not a week.
One downside: Nextra v3 is the current major. v4 is in beta. We pick v3, knowing v4 migration is a possible 1–2 day cost in 6 months.
3. Phase 1 time estimate
Brief targets Phase 1 in weeks 1–3. Honest estimate at the voice-and-sourcing quality bar you set:
| Deliverable | Days |
|---|---|
| Footer restructure (live) | 1 |
| 5 hub pages (skeleton + index logic) | 1.5 |
| Nextra setup + theming + 5 Getting Started docs | 3 |
| 3 launch blog posts (1 day each, with sourcing) | 3 |
| 3 problem pages (¾ day each) | 2.5 |
| 3 comparison pages (1 day each — first one slowest) | 3 |
| 3 solution landing pages | 3 |
| /integrations public page + migrate in-app to /nexpura/settings/integrations + 301 | 1 |
| MDX/Velite scaffold + zod schemas + sitemap wiring | 1 |
| Review iteration buffer (you'll send back edits) | 2 |
| Total | ~21 working days |
That's 4–5 calendar weeks at a sustainable pace, not the 3 in the brief. Three weeks is achievable if I batch the comparison pages on locked templates and skip Sentry/observability scaffolding I'd normally insist on for production routes. I don't recommend it — the voice bar you set is the long pole, and rushing it produces exactly the AI-feel content you said to avoid.
4–5. Sample drafts
These pages set the templates for the other content of the same shape. Read them on the actual rendered routes so you see them as they'd appear in production. Sourcing footnotes at the bottom of each page — every public quote has a URL.
- Sample 4 · Blog post #1The customer who never came back for their ring →~1,800 words. Real BBB & Trustpilot quotes about jewelry-repair pickup failures.
- Sample 5 · Problem page templateThe repair that never gets picked up →~1,000 words. The 8-section template that the other 9 problem pages will follow.
What I want from you before kickoff
- Sign-off on the CMS choice (MDX-in-repo) or pushback if you want Sanity/Contentful — happy to defend either.
- Sign-off on Nextra for /docs.
- Accept the 4–5 week Phase 1 estimate, or tell me which deliverables to drop to hit 3 weeks.
- Voice approval on the blog post. If it doesn't sound like a person who's stood behind a counter, we rewrite before the other 23 blog posts get drafted.
- Template approval on the problem page. Lock the 8-section structure now so I can batch the other 9 against it.
- Template approval on the comparison page. Lock the table + "where they win" pattern now so the other 24 batch fast.