Skip to content

Serve the docs from the root, with a project selector - #10

Merged
EiffL merged 4 commits into
mainfrom
project-selector
Sep 30, 2026
Merged

EiffL merged 4 commits into
mainfrom
project-selector

Conversation

@EiffL

@EiffL EiffL commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Restructures the site around the whole Lightcone stack:

  • Stack-wide pages sit at the root.
  • Each component has its own section, chosen from a project selector at the top of the sidebar, like the one on fumadocs.dev.

This is the skeleton; content migration follows project by project.

Docs at the root

  • Routes moved. The docs page and layout move from app/docs/ into the app/(docs)/ route group, and the source's baseUrl becomes /.
  • Landing page removed. The empty home page (app/(home)) is gone, so / is now the stack's introduction.
  • Other routes unaffected. Static routes (/api/search, /llms.txt, /og/…, /llms.mdx/…) take precedence over the root catch-all.

Project selector

Each project is a Fumadocs root folder ("root": true in its meta.json, with a title, description and Lucide icon).

Project Path Now
Lightcone Stack / Introduction; the quickstart and guides come next. Sidebar link to the ASTRA specification
Lightcone CLI /lightcone-cli Overview, linking to the current docs
Agent Skills /agent-skills Overview, linking to the current docs
Lightcone Lab /lightcone-lab Overview, linking to the README
MySTRA /mystra Overview, linking to the current docs
  • Stack section folder. The stack section is a (stack) folder group, so its pages have no path prefix. It still has to be a root folder, because Glass only shows the selector on pages inside one.
  • Icons. They are resolved by lucideIconsPlugin() in the loader.
  • Tabs built on the server. The docs layout builds the tabs itself with getLayoutTabs, as fumadocs.dev's Glass layout does. The default transform wraps each icon in a box that stretches to fill its container: that suits the Docs layout, but in Glass's dropdown the icon took the whole button.
  • ASTRA and astra-tools. They stay documented on astra-spec.org and are linked rather than duplicated.
  • Theming sample removed. The sample "Components" page used for theming is deleted.

Page subtitles and muted text

The page description under each title is now Slate Blue, like the small-caps label under titles in the brand guidelines. Fumadocs colours it with its general muted colour, so it gets a colour class in the page file (DocsDescription, which already carried the template's mb-0). Other secondary text, which Fumadocs draws in its muted colour (inactive sidebar links, callout and card text, descriptions, the search placeholder), now uses the brand's muted text role (--lc-color-text-muted) instead of its subtle tone. That role is Blue Ink in light mode and a warm light grey in dark mode. It is one line in app/lightcone.css.

Follow-ups

  • Migration, one project at a time. Start with Lightcone CLI: the old site's pages are in this repo's history, and the closed Document the full Lightcone research stack and simplify onboarding #3 has a stack-level rewrite. Then MySTRA and Agent Skills; Lightcone Lab needs new pages.
  • Redirects. Add them from the previous site's URLs (e.g. /user/install/) and from the per-repo GitHub Pages sites once their content moves here.
  • Search and llms.txt. Optionally scope search, and add a per-project llms.txt.

Testing

  • npm run types:check and npm run build pass. The build emits /, /lightcone-cli, /agent-skills, /lightcone-lab and /mystra.
  • Served out/ locally and checked:
    • the selector's icons, titles and descriptions;
    • switching project;
    • that each project's sidebar shows only its own pages.

🤖 Generated with Claude Code

The documentation now lives at the site root instead of /docs, and the
empty landing page is gone: `/` is the stack's introduction.

Content is organised as Fumadocs root folders, one per project, which
Glass shows as a selector at the top of the sidebar:

- Lightcone Stack (a `(stack)` folder group, so its pages sit at the
  root): stack-wide introduction, and later the quickstart and guides
- Lightcone CLI, Agent Skills, Lightcone Lab and MySTRA: an overview of
  each component for now, linking to its current documentation until it
  is migrated here

Each project names a Lucide icon in its meta.json, resolved by the
loader's lucideIconsPlugin. The docs layout builds the tabs on the
server, as fumadocs.dev does, because the default transform stretches
icons to fill their box, which only suits the Docs layout.

The ASTRA specification stays on astra-spec.org, linked from the stack's
sidebar and introduction. The theming sample page is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs Ready Ready Preview Sep 30, 2026 3:11am UTC

Request Review

The brand guidelines put a small-caps Slate Blue label under gold titles.
Fumadocs colours the page description with its general muted colour, so
the page's DocsDescription gets the brand's slate colour directly,
leaving other secondary text unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fumadocs' muted foreground (inactive sidebar links, callout and card
text, descriptions, the search placeholder) now takes the brand's
scheme-aware Blue Ink instead of its subtle mushroom tone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The brand's --lc-color-text-muted is Blue Ink in the light scheme and a
warm light grey in the dark scheme, so muted text follows the brand's
own dark-scheme choice rather than a lightened Blue Ink.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@EiffL
EiffL added this pull request to stack #13 September 30, 2026 04:21
@EiffL
EiffL merged commit d4a7e25 into main Sep 30, 2026
2 checks passed

This branch was successfully deployed

1 active deployment
Preview — a469af74 Deployed Sep 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant