Self-hosted documentation site for Sessionboard, live at https://learn.sessionboard.com, replacing the HubSpot Knowledge Base that previously served that hostname. help.sessionboard.com 301s to it. Built with Astro Starlight, deployed to Cloudflare Workers.
- 220 published articles (parity-audited against the live KB) plus home, Agents, and App Marketplace overview pages — all MDX in
src/content/docs/, build-validated with 0 broken internal links and all screenshots hosted locally (no HubSpot CDN dependency). - An IA that mirrors the admin nav (Guides → Program/CRM/Marketing/CMS/Awards/Reports/Agents/Event Team/Settings · Participant guide · Apps · Help) — sidebar in
src/sidebar.json. - Pagefind search, sitemap, dark mode.
llms.txt/llms-full.txtare still generated intodist/for our own use (Breeze knowledge source, future in-house chat) but are not served publicly — see the crawler policy inLAUNCH.md. - Growth-grade page chrome — styling matches the growth pages design system (
sessionboard-tam/growth-org/assets/DESIGN.md), breadcrumbed titles + BreadcrumbList JSON-LD, branded per-page share images (public/og/,npm run og), full OG/Twitter meta, TechArticle structured data, GA4 + GTM (same container as www.sessionboard.com), and a UTM-attributed demo CTA in every footer. redirects-301.csv— the completeold_url → new_pathmap for every HubSpot article (backs the 301s at cutover).MIGRATION.md— coverage summary, parity audit log, and the 44 drafts / 10 archived held for review.STYLE.md— voice, terminology, and component decision table.AGENTS.md— working instructions for agents/humans.walkthroughs/— auto-generated narrated video pipeline (spec → Playwright capture → TTS → render → embed).
npm install
npm run dev # http://localhost:4321
npm run build # breadcrumbs + full build + Pagefind index + link validation
npm run og # regenerate share images (pip install -r requirements.txt first)After adding or retitling pages: npm run og (regenerates only stale images) and commit public/og/. CI fails if a page is missing its share image or src/breadcrumbs.json is stale.
astro.config.mjs # site config, sidebar, plugins
src/content/docs/ # all pages (MDX)
src/sidebar.json # navigation (generated by npm run sidebar)
src/components/compat/ # Note/Tip/Warning/Steps/Card/Accordion/AddOnNote/Walkthrough
src/components/ # Head (meta/JSON-LD/GA4), PageTitle (breadcrumbs), Footer (demo CTA)
src/styles/custom.css # growth design system theme (tokens from DESIGN.md)
src/breadcrumbs.json # slug → trail/section (generated by npm run breadcrumbs)
public/images/kb/ # re-hosted KB screenshots
public/og/ # branded 1200×630 share images (npm run og)
public/logo/ # brand + app marketplace logos
scripts/ # parity sync, image re-hosting, sidebar generation
walkthroughs/ # video walkthrough pipeline
The 35 hand-crafted pages (e.g. sessions/, speaker-crm/pipeline, integrations/api-tokens) show the target quality bar; the bulk-imported pages are faithful conversions awaiting an editorial pass. Follow STYLE.md when upgrading a page.