Skip to content

feat(products): aggregate Thrivestream docs from its own repo - #37

Merged
coopbri merged 3 commits into
masterfrom
feat/product-docs-aggregation
Sep 9, 2026
Merged

feat(products): aggregate Thrivestream docs from its own repo#37
coopbri merged 3 commits into
masterfrom
feat/product-docs-aggregation

Conversation

@coopbri

@coopbri coopbri commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

docs.omni.dev now mirrors a product's own docs at build time instead of redirecting out to them. Thrivestream is the first product brought in; the mechanism generalizes to any product that keeps its own docs repo.

The source of truth stays with each product (docs live next to the code they document, so a product's feature PR updates its docs in the same change). This site aggregates them into one searchable portal.

Changes

  • Mirror mechanism (new):
    • scripts/productDocs.config.ts — manifest of products to mirror. Adding a product is one more row. Thrivestream is pinned to a specific ref of coopbri/thrivestream-docs.
    • scripts/syncProductDocs.ts (bun run docs:sync, also wired into build) — clones each repo at its pinned ref into content/docs/products/<id>/. Rewrites upstream root-relative links to the mount path and injects canonical / sourceUrl / mirroredFrom frontmatter. Idempotent (no build-time churn); the committed mirror is the last-good fallback if a fetch fails, mirroring the existing generateCatalog approach.
  • Wiring:
    • source.config.ts — frontmatter schema extended with optional canonical / mirroredFrom / sourceUrl.
    • src/routes/$.tsx — mirrored pages emit their canonical URL and "view source" link pointing home (docs.thrivestream.live / its repo), not docs.omni.dev.
    • src/routes/sitemap[.]xml.ts — mirrored pages (those carrying a canonical) are excluded to avoid duplicate URLs.
  • Thrivestream: redirect stub products/thrivestream.mdx removed; 13 mirrored pages added under products/thrivestream/.
  • Sidebar: removed the "Hire Us" banner.
  • Build fix (fix(herald)): the committed Herald docs carried stray trailing </content> / </invoke> tags that broke the vite MDX build (fumadocs-mdx tolerated them, vite build did not). Stripped so the site builds.

Testing

  • bun run build passes green.
  • Pre-commit gates pass (knip, tsc --noEmit, staged Biome) — no hook bypasses.
  • Sync verified idempotent: the build-time run leaves the committed mirror unchanged.

Notes

  • Do not hand-edit files under a mirrored folder; edit the upstream repo and bump ref in the manifest, then bun run docs:sync.
  • The Herald fix touches files from recent work (commit 55e0185); the diff is purely the trailing-tag removal.

The Herald product docs shipped with stray closing `</content>` tags (and a
`</invoke>` in index.mdx) left over from generation, with no matching open
tag. `fumadocs-mdx` tolerates them, but the vite build's MDX compiler rejects
them, so `bun run build` failed on all five files. Strip the trailing tags so
each page ends on real content and the site builds.
docs.omni.dev now mirrors a product's own docs at build time instead of
redirecting to them. A manifest (scripts/productDocs.config.ts) lists which
products to mirror; scripts/syncProductDocs.ts clones each at a pinned ref and
copies its content into content/docs/products/<id>/, rewriting root-relative
links to the mount path and injecting canonical, sourceUrl, and mirroredFrom
frontmatter. The source of truth stays with each product, and the mirror is
committed so a build without repo access ships the last good copy.

Thrivestream is the first mirror, replacing its redirect stub. Mirrored pages
point their canonical URL and "view source" link back to docs.thrivestream.live
and its repo, and are excluded from this site's sitemap to avoid duplicate
URLs. Also removes the "Hire Us" sidebar banner.
Document Fractal's S3-compatible object storage: creating buckets, private
vs public buckets, the public media URL (<bucket>.media.omni.dev),
connecting a bucket to a service via injected S3 credentials, serving
public media, and plan limits. Adds the page to the Guides nav.
@coopbri
coopbri merged commit 53e96f0 into master Sep 9, 2026
2 checks passed
@coopbri
coopbri deleted the feat/product-docs-aggregation branch September 9, 2026 18:48
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 9, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant