Skip to content

Feat: migrate marketing site to Docusaurus (rossoctl) with synced docs#88

Merged
mrsabath merged 20 commits into
rossoctl:mainfrom
Ibrahim2595:feat/docusaurus-rossoctl-site
Jul 22, 2026
Merged

Feat: migrate marketing site to Docusaurus (rossoctl) with synced docs#88
mrsabath merged 20 commits into
rossoctl:mainfrom
Ibrahim2595:feat/docusaurus-rossoctl-site

Conversation

@Ibrahim2595

@Ibrahim2595 Ibrahim2595 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

⚠️ Required from maintainers:

  1. Set this repo's Pages source to "GitHub Actions" (Settings → Pages) so deploy.yaml can publish. The old branch/root-based Pages setup will not work with the Docusaurus build.
  2. Merge the kagenti/kagenti docs PR first — this build pulls docs-temp/ and CONTRIBUTING.md from kagenti main and will fail if that content isn't there yet.
  3. Confirm the docs-temp-updated repository_dispatch reaches this repo once SITE_DISPATCH_TOKEN is set upstream (that secret lives in kagenti/kagenti).

Depends on #rossoctl/rossoctl#2176

Replace the hand-built static marketing site with the rossoctl Docusaurus site: ecosystem guide as the landing (/), plus a Docs section synced at build time from kagenti/kagenti:docs-temp/ (scripts/sync-docs.sh; docs/ is git-ignored).

  • Remove old static assets (index.html, style.css, script.js, img/, etc.).
  • Replace the Pages workflow (hugo.yaml -> deploy.yaml): npm ci -> sync-docs ->
    build -> upload build/. Triggers on push, the docs-temp-updated dispatch, a daily cron, and manual dispatch.
  • Config: serve at kagenti.github.io/.github/ (baseUrl /.github/); drop the Docs-temp plugin and navbar item.
  • Preserve org community-health files (profile/, .github/ISSUE_TEMPLATE/, reusable workflows, CLAUDE.md).

Assisted-By: Claude (Anthropic AI) noreply@anthropic.com

Summary

Related issue(s)

(Optional) Testing Instructions

Fixes #

Replace the hand-built static marketing site with the rossoctl Docusaurus site:
ecosystem guide as the landing (/), plus a Docs section synced at build time from
kagenti/kagenti:docs-temp/ (scripts/sync-docs.sh; docs/ is git-ignored).

- Remove old static assets (index.html, style.css, script.js, img/, etc.).
- Replace the Pages workflow (hugo.yaml -> deploy.yaml): npm ci -> sync-docs ->
  build -> upload build/. Triggers on push, the docs-temp-updated dispatch,
  a daily cron, and manual dispatch.
- Config: serve at kagenti.github.io/.github/ (baseUrl /.github/); drop the
  Docs-temp plugin and navbar item.
- Preserve org community-health files (profile/, .github/ISSUE_TEMPLATE/,
  reusable workflows, CLAUDE.md).

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Add a version selector to the navbar (left, after Blog). Only the current
"dev" docs exist today; selecting "dev" opens the Getting Started section.
Label the current docs version "dev" so this can switch to the built-in
docsVersionDropdown once v0.7 is cut.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Incorporate the designer's landing mock and token spec:
- Site-wide palette via Infima variables (page #f2f2f2/#000, borders
  #e0e0e0/#383838, text #000/#fff, brand red #ee0000 in both themes).
- Footer inverts per theme (black in light, white in dark; red wordmark).
- Landing: designer's hero wording, red Get started / Learn more CTAs, and
  "Open questions" + "Key capabilities" as numbered accordions (new
  src/components/Accordion). Removes the RossoCortex hero diagram.
- Navbar: rename Docs -> Documentation, token colors, brand red title.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
- Constrain the landing content to ~672px (centered), per the mock.
- Enlarge the hero body text to ~1.5rem to match the design.
- Open questions: show a truncated one-line description preview when a row is
  collapsed (Key capabilities still hides it when collapsed), matching the
  prototype's accordion behavior.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
…esign

- Navbar: drop the drop-shadow, keep a single light divider (#e0e0e0/#383838).
- Nav links: regular weight (400), 16px — matching the mock (was semibold).
- Accordion chevron: use the exact filled chevron glyph from the design.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
- Left-align the brand + doc links (drop the space-between + right copyright).
- Footer links → Documentation, Quickstart, Architecture, Guides, Contributing
  (doc-nav, replacing the mock's llm-d template leftover).
- Remove the copyright line and use the design's generous vertical padding.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Add a custom navbar item (custom-gitHubStars) that fetches the repo's
stargazers_count from the GitHub API client-side and renders "N stars" next to
the GitHub icon. Cached in sessionStorage (1h) to avoid refetching; falls back
to a plain "GitHub" label if offline or rate-limited.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
The live star count inherited the default navbar link size/weight (1rem /
400) while 'Join Slack' next to it uses 0.8rem / 500. Match the two so the
right-side header items read as one consistent set.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Expand 'Local development' into a run-and-test guide: prerequisites (Node 20+,
npm — not yarn/pnpm), which repos to clone (this repo always; kagenti/kagenti
only to preview unpushed doc edits), and the npm workflow to install, sync
docs, run the dev server, and validate a production build.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>

@pdettori pdettori left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean, well-executed migration from the hand-built static site to a Docusaurus (rossoctl) site with a build-time docs sync from kagenti/kagenti.

Strengths

  • New Pages workflow uses least-privilege permissions (contents: read, pages: write, id-token: write).
  • scripts/sync-docs.sh is properly hardened: set -euo pipefail, quoted vars, mktemp + trap cleanup, sparse blobless clone from a hardcoded trusted repo URL.
  • GitHubStars component fetches the public API without a token, caches with a TTL, and degrades gracefully to a plain "GitHub" label.
  • No risky client-side patterns (dangerouslySetInnerHTML / eval / child_process), no secrets, lockfile committed for reproducible builds.

Two non-blocking findings inline (one suggestion, one nit).

Merge-time prerequisites (from the PR body, not code): set Pages source to "GitHub Actions"; merge rossoctl/rossoctl#2176 first (build pulls docs-temp/ + CONTRIBUTING.md); confirm the docs-temp-updated dispatch reaches this repo.


Reviewed areas: CI/Actions, Shell, TypeScript/Frontend, YAML/config, Docs. Author: MEMBER (maintainer). Commits: 9/9 signed-off. No .claude//.vscode/ changes.

Assisted-By: Claude Code

Comment thread docusaurus.config.ts
path: 'contributing',
routeBasePath: 'contributing',
sidebarPath: './sidebarsContributing.ts',
editUrl: 'https://github.com/Ibrahim2595/rossoctl-website/tree/main/',

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion — This editUrl for the Contributing docs plugin points to Ibrahim2595/rossoctl-website, a personal fork that currently returns 404. That makes the "Edit this page" link on the Contributing page broken.

Since this content is synced from kagenti/kagenti:CONTRIBUTING.md (see scripts/sync-docs.sh), the edit link should point at the source of truth — e.g. https://github.com/kagenti/kagenti/blob/main/CONTRIBUTING.md — or be omitted entirely.

Comment thread .github/workflows/deploy.yaml Outdated
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit — Actions here are pinned to major tags (@v4/@v5/@v3). These are first-party actions/* matching GitHub's own Pages deployment template, so the risk is low. For the org's shared .github repo, pinning to full commit SHAs is the hardening best practice — optional, not blocking.

@esnible

esnible commented Jul 15, 2026

Copy link
Copy Markdown
Member

To test this locally, I did

cd ~/src/kagenti
gh pr checkout 2176 --repo kagenti/kagenti
cd ~/src/kagenti-githubpages
npm ci
SRC_REPO=~/src/kagenti npm run sync-docs
npm start

@Ibrahim2595
Ibrahim2595 marked this pull request as draft July 15, 2026 13:30
- Hide the in-progress Docs (docs: false) and remove its navbar/footer/version entry points until launch; docs stay authored upstream and are regenerated by sync-docs at build time.
- Rewrite the landing around the two-part platform: RossoCortex (data plane) and rossoctl services, with problem framing from the vision brief; drop the Open questions section.
- Add a theme-adaptive ArchitectureDiagram (light/dark via Infima variables, IBM Plex Sans) modeled on the RossoCortex architecture.
- Point the hero CTAs at rossoctl/rossoctl (Get started) and rossoctl/cortex (Try RossoCortex).
- Rename kagenti -> rossoctl across site config, content, and tooling (org, GitHub Pages URL, website -> rossoctl.dev, source-of-truth repos). Slack/Medium/Google Group/calendar links unchanged.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
- Workflows: kagenti/.github -> rossoctl/.github references, project board org, and workflow display names.
- Issue templates and PR template: brand and CONTRIBUTING links.
- Org profile README: brand, website -> rossoctl.dev, and renamed repos (agent-examples -> examples, kagenti-operator -> operator, kagenti-extensions -> cortex). Slack link unchanged.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
@Ibrahim2595
Ibrahim2595 marked this pull request as ready for review July 20, 2026 20:38
…e/README.md edit

profile/README.md was reworked in rossoctl#89 (merged) — added the Core/Experimental
grouping and removed archived repos (ecosystem-guide, adk, adk-starter,
agentic-control-plane, plugins-adapter). This branch's older edit only rebranded
the flat list and would revert that, so restore profile/README.md to the merged
main. The Docusaurus website changes in this PR are unaffected.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
@Ibrahim2595

Copy link
Copy Markdown
Contributor Author

Dropped this PR's profile/README.md edit (4d38a18) — #89 merged first and reworked that file (added a Core / Experimental grouping and removed the 5 archived repos: ecosystem-guide, adk, adk-starter, agentic-control-plane, plugins-adapter). This branch's older edit only rebranded the flat list and would have reverted #89, so I restored profile/README.md to the merged main. The Docusaurus/website changes here are untouched, and the file no longer diffs from main (no conflict).

sync-docs.sh treated a missing upstream docs-temp/ as fatal (exit 1). Docs are hidden (docs: false) so the build doesn't need docs-temp — a missing folder now warns and skips instead of failing the deploy. Lets the site ship before the docs-temp source PR merges; syncs normally once it lands and docs are re-enabled.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Add netlify.toml (sync-docs + build, publish build/, Node 20) and make docusaurus baseUrl/url env-aware: '/' on Netlify (previews serve at the domain root), '/.github/' on GitHub Pages. Production still deploys to Pages via deploy.yaml; Netlify only builds PR previews.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
…ties

Accordion items can carry an optional status, rendered as a themed pill (light/dark) on the right of the row. Tag the eight RossoCortex functions with their status; the services accordion is unaffected.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
Empty commit to fire a PR event so Netlify builds the first Deploy Preview for this PR (Netlify was connected after the earlier commits landed, so it never saw an event for them).

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
@netlify

netlify Bot commented Jul 21, 2026

Copy link
Copy Markdown

Deploy Preview for animated-crumble-fb8862 ready!

Name Link
🔨 Latest commit 1c9eec6
🔍 Latest deploy log https://app.netlify.com/projects/animated-crumble-fb8862/deploys/6a6102585e6e3e000833af75
😎 Deploy Preview https://deploy-preview-88--animated-crumble-fb8862.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
…den)

The reference IA lives in docs-temp/ on the draft PR and won't be merged; the real docs will render from rossoctl/rossoctl:docs/. Repoint sync-docs (SUBDIR), the docs plugin path/editUrl, .gitignore, the deploy dispatch type (docs-updated), and the docs comments accordingly. docs: false is unchanged, so Documentation stays hidden until launch.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>

@mrsabath mrsabath left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed at the updated head (5be3fb9). The author's changes since — renaming the sync source docs-temp/docs/ (+ dispatch type docs-temp-updateddocs-updated), hardening the "don't fail when the source dir is absent" path, and adding Netlify previews — are good; dropping the "temp" name is the right call.

The build/deploy mechanism is sound: deploy.yaml uses minimal scoped permissions (contents: read, pages: write, id-token: write), a concurrency guard, and only first-party actions/*; sync-docs.sh is set -euo pipefail with a sparse blobless clone, trap cleanup, and a graceful skip when the source dir is missing — combined with docs: false in the config, the site builds fine regardless of the sibling content PR. npm deps pinned to Docusaurus 3.10.1 with no pre/postinstall hooks.

Three non-blocking suggestions inline. Verdict: APPROVE.

Areas reviewed: GitHub Actions workflows (security/pinning), sync script (shell + supply chain), Docusaurus config, package.json. Commits: signed-off (DCO green). CI: Netlify deploy-preview passing.

Comment thread .github/workflows/deploy.yaml Outdated
push:
branches: [main]
repository_dispatch:
types: [docs-updated]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (cross-repo coordination): this now listens for repository_dispatch type docs-updated, but rossoctl/rossoctl#2176's dispatch workflow still fires docs-temp-updated (event_type: docs-temp-updated). Until #2176 is updated to match — both the event type and the docs-temp/docs/ directory rename — the push-triggered resync will silently no-op and the site will only refresh via the daily cron. The fix belongs in #2176; flagging here so the two stay in sync.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still open (correctly not addressed here — the fix belongs in rossoctl/rossoctl#2176). Left a coordination note there to rename its dispatch event_type to docs-updated and docs-temp/docs/ so the push-trigger matches this workflow. Leaving this thread open until the two sides align.

Comment thread scripts/sync-docs.sh Outdated
… rebrand

- deploy.yaml: pin actions/* to full commit SHAs (matches stale.yaml/link_checker.yaml) for supply-chain consistency (review r3632430032).

- sync-docs.sh: drop the blanket s/Kagenti/rossoctl/g — upstream CONTRIBUTING.md is already rebranded (0 occurrences) and the sub could mangle 'Kagenti' inside code blocks (review r3632430039).

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: IBRAHIM IBRAHIM <66755652+Ibrahim2595@users.noreply.github.com>
@mrsabath

Copy link
Copy Markdown
Contributor

Re-checked at `1c9eec6` — the review fixes look good. Actions are now SHA-pinned with correct version comments, and the blanket `Kagenti`→`rossoctl` sed is gone. Verified the changes are limited to those two review items (no other diff). Resolved both threads.

The one remaining item is the cross-repo dispatch-type match (docs-updated vs #2176's docs-temp-updated), which is correctly tracked in rossoctl/rossoctl#2176 — left that thread open until the two align. My approval stands. Thanks for the quick turnaround! 👍

@mrsabath
mrsabath merged commit 3b78a2f into rossoctl:main Jul 22, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from New/ToDo to Done in Rossoctl Issue Prioritization Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants