docs: migrate the documentation site to Fumadocs - #137
Conversation
Audit repair validation — September 7, 2026Current head: Documentation workflow passed on this exact commit: https://github.com/conceptadev/ack/actions/runs/34132137290 This includes frozen installation, helper/API/dependency checks, production builds and exported-page/link/metadata validation for both The shared theme also passes its current CI, including an isolated consumer installed from its packed tarball: https://github.com/conceptadev/docs-theme/actions/runs/34130882577 (commit The repository-wide Dart CI run 34132137301 and Release preflight run 34132137326 are still in progress at this check. Their results must be reviewed before merge; the documentation result does not replace those required checks. The PR remains draft and unmerged. Hosting cutover and the shared package's eventual registry release remain explicit follow-up gates. No production deployment or package publication was performed. |
Summary
Migrate Ack's existing published documentation to a static Fumadocs application using the shared Concepta theme. Keep
docs/as the canonical source and preserve existing page paths, navigation order, and Dart documentation tests.This PR does not rewrite Ack's schema/model implementation or automatically import root/package READMEs. The app lives in
docs-site/; its ignored content mirror is copied byte-for-byte fromdocs/.Audit repairs
/docsroute tree, root redirect, broad content importer, and duplicate workflow.@conceptadev/docs-themesnapshot underdocs-site/packages/docs-theme.Status status,imageUrl, andcreateSourceUrl./ackin canonical URLs, sitemap entries, social images, search fetches, and Markdown downloads. Next.js Link receives application-relative paths without double-prefixing.@conceptadev/docs-theme/statusfor MDX build-time schema evaluation.pnpm-workspace.yaml, approve only esbuild lifecycle scripts, and retain release-age checks with two exact reviewed Fumadocs release exceptions.next startcommand with a local static preview.Temporary lockfile-generation automation has been removed. No credentials are required to install another private repository during public Ack builds.
Included behavior
Native Fumadocs navigation, table of contents, dark mode, local static search, GitHub repository/source actions, Projects menu, pub.dev/Concepta links, canonical/social metadata, per-page Open Graph images, sitemap, robots output, and Markdown/LLM exports. No custom plugin runtime, forked layout, hosted search service, or AI/CMS integration.
Validation
The Documentation workflow validates:
/and/ack.All documentation checks passed in run 34131795617 at
d86a208e5c561d552ec018a78855a6021cf5f854. The subsequent commit548a866ed5c9eddc6631d6823702828af649fe74only adds inline-YAML coverage to the dependency-policy test; fresh Documentation, CI, and Release preflight runs are tracked on the current head. Do not treat an earlier successful run as approval of a later commit.The shared theme's CI, including an isolated packed-package consumer build, passes at
117abf35b821603fa63869db2d45f365284ef1eein conceptadev/docs-theme#2.Merge and hosting gate
Keep this PR draft until the hosting cutover is ready and the current head's required checks pass.
Removing
docs.jsonends the old docs.page configuration. Servedocs-site/outathttps://concepta.dev/ack, retain directory indexes and real 404s, and verify the actual host before cutover. The origin's/robots.txtmust reference the Ack sitemap; a subpath robots file does not control the entire origin. Older/documentation/ackredirects belong to the host.The shared theme remains private and unpublished. Replace the documented local snapshot only after a reviewed package release is available and the same checks pass.
No merge, deployment, DNS change, or package publication is performed by this PR.