Skip to content

feat(docs): scaffold fumadocs next site (phase 1)#111

Merged
pratyush618 merged 2 commits intomasterfrom
feat/docs-fumadocs-scaffold
May 2, 2026
Merged

feat(docs): scaffold fumadocs next site (phase 1)#111
pratyush618 merged 2 commits intomasterfrom
feat/docs-fumadocs-scaffold

Conversation

@pratyush618
Copy link
Copy Markdown
Collaborator

First phase of the docs migration off Zensical. Sets up docs-next/ (Fumadocs 16 + Next.js 16 + MDX, static-export preset) alongside the existing Zensical site. The Zensical site at docs.byteveda.org/taskito keeps shipping unchanged; nothing is removed or repointed in this PR.

Replaces #110 (Docusaurus draft) — closed after revisiting the GH Pages constraint. Fumadocs' static export + built-in LLM routes give us all of phase 6 for free.

Why Fumadocs

The original plan recommended Fumadocs for four reasons; you initially asked for Docusaurus on GH Pages, then I confirmed Fumadocs static-exports cleanly to GH Pages. Picking Fumadocs back up because the LLM routes + Tailwind-first DX + +next+fuma-docs-mdx+static template wipe out three of the seven planned migration phases on day one.

What's in here

docs-next/ — Fumadocs scaffold with +next+fuma-docs-mdx+static template, Biome linter, Orama search, Next-OG image generator. Versions:

  • next 16.2.4
  • fumadocs-core / fumadocs-ui 16.8.5
  • fumadocs-mdx 14.3.2
  • react 19.2.5
  • @orama/orama 3.1.18

Static export confignext.config.mjs ships:

output: 'export',
basePath: '/taskito',
images: { unoptimized: true },

GH Pages-ready out of the box. Output goes to out/.

LLM-friendly routes already wired by the Fumadocs template — these were "phase 6" in the original plan, free here:

  • /llms.txt — index of every page with title + description
  • /llms-full.txt — full corpus as one Markdown document
  • /llms.mdx/docs/[[...slug]]/content.md — raw MDX per page (replaces the hand-rolled copy-markdown.js)
  • /og/docs/[...slug]/image.png — auto-generated per-page OG image via next-og
  • /api/search — local Orama search endpoint (no Algolia signup)

Taskito brandingsrc/lib/shared.ts (appName + gitConfig pointing at ByteVeda/taskito), navbar links array (Getting Started / Guides / Architecture / API / Changelog), root metadata with metadataBase: https://docs.byteveda.org/taskito.

Custom landing pagesrc/app/(home)/page.tsx rewritten with Taskito hero (title + tagline + Quickstart/Install CTAs) and a 3-card feature row (Brokerless / Rust-powered / Python-native). Real visual polish is phase 5.

IA skeleton (33 stub MDX pages + 14 meta.json files):

  • getting-started/ × 3 (installation, quickstart, concepts)
  • guides/ × 9 sub-categories (core, reliability, advanced-execution, operations, observability, resources, workflows, integrations, extensibility) — folds in Resources, Workflows, Integrations from the Zensical top nav per the approved IA
  • architecture/overview.mdx
  • api-reference/overview.mdx
  • more/ × 4 (examples, comparison, faq, changelog) — collapses Zensical's Changelog + Changelog Archive split

Each stub has a Fumadocs <Callout type="info"> saying "Phase 1 stub — content port pending" so it's obvious nothing is final.

.github/workflows/docs-next.yml — build + typecheck + lint on PR (path-filtered to docs-next/**). No deploy yet — cutover lives in phase 7.

What's NOT in here (next phases)

  • Content port (phases 2–4) — actual prose moved from docs/ into the stubs
  • API reference component (<APIMethod> — phase 3)
  • Landing page polish + shadcn-style components (phase 5)
  • LLM-friendly routes ← already in template
  • Hosting / DNS cutover and Zensical decommission (phase 7)

Phase 6 gone, schedule shrinks

Original critical path was phase 1 + 6 + 7 (~3 days). With phase 6 absorbed into the template, it's now phase 1 + 7 (~1.5 days). Phases 2–5 still parallelizable post-cutover.

Test plan

  • pnpm install --frozen-lockfile — clean
  • pnpm types:check✓ Types generated successfully
  • pnpm lint — exit 0 (2 warnings on Fumadocs scaffold's !important CSS, intentional, no errors)
  • pnpm build — 66 static pages, no warnings, no errors
  • out/llms.txt and out/llms-full.txt populated with the IA tree
  • Static export hits /taskito basePath; out/index.html and out/docs/... generated
  • CI: new Build Docs (Next) job passes on this PR
  • Manual smoke once merged: spin up pnpm --dir docs-next dev locally and confirm all 5 nav buckets resolve, dark mode works, /llms.txt and /llms-full.txt return content

Brings up `docs-next/` (Fumadocs 16 + Next.js 16 + MDX, static-export
preset) alongside the existing Zensical site. IA skeleton in place but
content ports happen in later phases. LLM routes (`/llms.txt`,
`/llms-full.txt`, `/llms.mdx/...`) ship in the template — no custom JS.
Path-filtered to docs-next/. No deploy step yet — cutover lives in phase 7.
@pratyush618 pratyush618 merged commit f9f370c into master May 2, 2026
14 checks passed
@pratyush618 pratyush618 deleted the feat/docs-fumadocs-scaffold branch May 3, 2026 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant