Plan: Build the docs site's real homepage
Gives the docs site a true, bare-layout homepage at / — hero, values, languages, backends — moving the existing "About" doc to /about rather than embedding the hero inside the docs theme's chrome, which is what Option C as originally scoped turned out to still look like.
IMPLEMENTATION RULES: Before implementing this plan, read and follow:
- WORKFLOW.md - The implementation process
- PLANS.md - Plan structure and best practices
Status: Completed
Investigation: INVESTIGATE-docusaurus-homepage.md — Option C as originally scoped, revised mid-implementation (see Phase 1)
Goal: / is a true, bare src/pages/index.tsx homepage (hero, narrative, "Who Do You Write Logs For?" callout card, four value cards, Languages and Backends badge rows with real logos) — no docs sidebar/breadcrumb chrome around it. The former "About" doc content moved to /about; general/, using/, contributor/ are completely unaffected.
Last Updated: 2026-07-12
Problem Summary
docs/index.md was a plain Markdown "About" page with no visual identity — see INVESTIGATE-docusaurus-homepage.md for the full comparison against mimer's homepage. Also see Phase 1 below for a real correction found during implementation: embedding a hero inside the docs plugin's own index page (Option C as originally written) still renders through the standard doc-page theme — sidebar, breadcrumbs, TOC rail, pagination footer — so it never actually looked like a real homepage. The fix that shipped keeps all the upside of Option C (no routeBasePath change, general//using//contributor/ untouched) while getting a truly bare page: only the single "About" document's slug moved, from / to /about, freeing / for a real src/pages/index.tsx.
Phase 1: Build the hero, discover and fix the docs-chrome problem — DONE
Tasks
- 1.1 Renamed
website/docs/index.md→website/docs/index.mdx, builtHomepageHero(website/src/components/HomepageHero/), embedded it at the top of the doc page — this is what Option C originally specified. - 1.2 Found the doc-chrome problem: after building, the hero rendered inside the standard docs theme (sidebar, breadcrumbs, TOC, pagination) — visibly not "a real homepage" like mimer's, which uses a bare
@theme/Layoutwith no docs plugin wrapping it at all. - 1.3 Verified a fix with a test build before committing to it: changed the About doc's frontmatter
slug: /→slug: /aboutand added a genuinewebsite/src/pages/index.tsx(bareLayout, no sidebar). Confirmed via a real build that/,/about, and/general/all resolve correctly with zero broken links —routeBasePath: '/'stays exactly as-is for every other page; only the one About document's URL moved. - 1.4 Renamed the About doc
website/docs/index.mdx→website/docs/about.md(plain Markdown again — it no longer needs JSX now that the hero moved to the real homepage), removed theHomepageHeroimport from it.
Validation
npm run build clean, confirmed via grep against the built HTML that the hero's actual content (not just a successful build) rendered on /.
Phase 2: Values grid (revised scope) — DONE
Originally scoped as a three-card general/using/contributor navigation grid. Revised: the maintainer decided doc navigation didn't need its own homepage section (the hero's buttons + the sidebar already cover it) — instead, HomepageValues (renamed from the originally-planned HomepageFeatures) is four cards about why the project is built the way it is:
Tasks
- 2.1 Built
website/src/components/HomepageValues/— four cards: 🔓 Sovereign, 🌐 Open, 🔭 OpenTelemetry-native, 🧩 Consistent (the fourth added after the maintainer asked for a card about structured logging making fleet-wide monitoring possible, grounded ingeneral/why-consistent-logging.md's existing argument). - 2.2 Rendered
HomepageValueson the newsrc/pages/index.tsx.
Validation
npm run build clean; confirmed via grep that all four cards' text rendered.
Phase 3: "Who Do You Write Logs For?" callout card — DONE
Tasks
- 3.1 Added a card section to
src/pages/index.tsx(mimer-oath-card-style:card__header+card__body), linking out to the full text's canonical location intypescript/README.mdon GitHub — not duplicated on the docs site, perINVESTIGATE-readme-vs-docusaurus-policy.md's "canonical, not duplicated" rule. - 3.2 This supersedes the smaller, separately-proposed
general/index.mdparagraph raised earlier in the session — one placement, on the real homepage, not two.
Validation
npm run build clean; confirmed the card's text and GitHub link render.
Phase 4 (added): Languages and Backends badge rows with real logos — DONE
Not in the original plan — added after the maintainer asked for logos representing what's actually shipped vs. planned/theoretical.
Tasks
- 4.1 Built a shared
website/src/components/HomepageBadgeRow/component: items with alogorender as a large icon-chip (same2.5remscale asHomepageValues' emoji, at the maintainer's explicit request — matched, not guessed); items without one render as a plain text badge. - 4.2 Sourced real logo assets, not generated art (per this org's AI-reglement flag on AI-generated external imagery, raised earlier this session): TypeScript, Python, and Grafana from Simple Icons (CC0-licensed, official brand marks, recolored with each project's real brand color); UIS's actual logo fetched from its own real public site (
uis.sovereignsky.no/img/logo.svg). - 4.3 Languages row: TypeScript and Python get logos + a "success" tone (the two real, shipped implementations); Go/C#/Rust/PHP stay plain text ("planned").
- 4.4 Backends row: UIS and Grafana Cloud get logos + a "success" tone and a "verified" label (the only two backends actually validated end-to-end today, confirmed against
INVESTIGATE-external-backend-verification.md); Azure Monitor/Datadog/New Relic/Honeycomb/self-hosted stay plain text (OTLP-compatible in principle, not yet verified) — this corrected an accuracy gap the first draft of this row had (it listed all backends as equally supported).
Validation
npm run build clean; confirmed all four logo files render in the built HTML at the correct size.
Acceptance Criteria
-
/is a true bare-layout homepage (hero, narrative, callout card, 4 value cards, Languages/Backends rows) — no docs sidebar/chrome -
/aboutcarries the former "About" doc content;general/,using/,contributor/are unaffected — confirmed via build, norouteBasePathchange anywhere -
npm run buildpasses clean at every step - Maintainer visually confirmed the page locally via
npm run serveacross multiple rounds of feedback - Logos are real, sourced assets (Simple Icons CC0 + UIS's own site) — not AI-generated art
-
INVESTIGATE-docusaurus-homepage.mdand1PRIORITY.mdupdated to reflect this shipped, and the Option-D cost re-assessed (next step, immediately following this plan's completion)
Files Modified
website/docs/index.md→website/docs/about.md(moved,slug: /about)website/src/pages/index.tsx(new — the real homepage)website/src/components/HomepageHero/(new)website/src/components/HomepageValues/(new, renamed from the originally-plannedHomepageFeatures)website/src/components/HomepageBadgeRow/(new, not in the original plan)website/static/img/sovdev-logo.svg,typescript.svg,python.svg,grafana.svg,uis-logo.svg(new)website/docs/ai-developer/plans/completed/INVESTIGATE-docusaurus-homepage.md(moved frombacklog/)website/docs/ai-developer/plans/backlog/1PRIORITY.md