Feat: migrate marketing site to Docusaurus (rossoctl) with synced docs#88
Conversation
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
left a comment
There was a problem hiding this comment.
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.shis properly hardened:set -euo pipefail, quoted vars,mktemp+ trap cleanup, sparse blobless clone from a hardcoded trusted repo URL.GitHubStarscomponent 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
| path: 'contributing', | ||
| routeBasePath: 'contributing', | ||
| sidebarPath: './sidebarsContributing.ts', | ||
| editUrl: 'https://github.com/Ibrahim2595/rossoctl-website/tree/main/', |
There was a problem hiding this comment.
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.
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 |
There was a problem hiding this comment.
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.
|
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 |
- 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>
…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>
|
Dropped this PR's |
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>
✅ Deploy Preview for animated-crumble-fb8862 ready!
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
left a comment
There was a problem hiding this comment.
Re-reviewed at the updated head (5be3fb9). The author's changes since — renaming the sync source docs-temp/ → docs/ (+ dispatch type docs-temp-updated → docs-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.
| push: | ||
| branches: [main] | ||
| repository_dispatch: | ||
| types: [docs-updated] |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
… 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>
|
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 ( |
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).
build -> upload build/. Triggers on push, the docs-temp-updated dispatch, a daily cron, and manual dispatch.
Assisted-By: Claude (Anthropic AI) noreply@anthropic.com
Summary
Related issue(s)
(Optional) Testing Instructions
Fixes #