Repository navigation
feat(docs): Starlight docs at /docs, built from uptide-dev/uptide's docs/ - #3
Merged
Merged
Conversation
…ocs/ A docs site next to the landing page, which stays as it is apart from a Docs link in its top bar and footer. - docs-site/: Astro 7.3.8 and Starlight 0.42.6, every version exact, with the lockfile and a pinned Node. - Content: each build clones uptide-dev/uptide@main (anonymous HTTPS) and generates the collection from docs/; nothing is committed here. Front matter title and description are kept, with the first heading and paragraph as fallback; relative links to repository files outside the docs go to GitHub; the sidebar follows docs/README.md. - Brand: the landing page's tokens, fonts from site/fonts, square corners, 1px rules, no shadows, dark code blocks in both themes, and the mark and wordmark linking to /. Search is Starlight's Pagefind. - Canonical URLs and og:image (the existing og.png) from SITE_URL. - Pages builds landing and docs together on push to main, daily and by hand; CI runs the same build. scripts/check-links.mjs fails on any broken internal link or anchor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VcwhsQvN6vtpRCe4uwfe8z Signed-off-by: Claude <noreply@anthropic.com>
lucasbraum
marked this pull request as ready for review
October 9, 2026 18:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a docs site at
/docs, built with Astro Starlight. The landing page at/is unchanged apart from a Docs link in its top bar and footer. The footer link is there because the top-bar nav is hidden on mobile.Content
uptide-dev/uptide@mainover anonymous HTTPS and uses itsdocs/folder as the content collection (docs-site/scripts/fetch-docs.mjs). The checkout and the generated pages are gitignored; a test asserts no docs are committed here.title/descriptionis used as is. 23 pages (architecture, packs, the decision records, …) have no front matter, so they fall back to their first#heading and first paragraph. A leadingStatus: accepted (…)line is skipped. The first#is dropped because Starlight renders the title as the h1.docs/README.mdtables, "Using Uptide" first, then "Contributing and internals", in README order.decisions/becomes a collapsed group, andCONTRIBUTING.mdandSECURITY.mdlink to GitHub. A README without those two sections fails the build.docs/stays on the site (../concepts.md#exit-codes→/docs/concepts/#exit-codes). Links to anything else in the repository go to GitHub:../CONTRIBUTING.mdand../packs/queue.jsontoblob/…;fixtures/repos/storefrontanddecisions/totree/….Brand
docs-site/src/styles/uptide.css). Space Grotesk, Instrument Sans and IBM Plex Mono load from the existingsite/fontsfiles.#131210in both themes.uptidewordmark link to/, with GitHub and npm icon links. Search is Starlight's built-in Pagefind.#6A675Finstead of the landing page's#76736B, which is just under 4.5:1 for small text on#F4F2EC.og:image(the existingog.png) come from the sameSITE_URLas the landing page.Deploy
pages.ymlbuilds the docs, assemblessite/at the root and the docs under/docsinto_site/, writesSITE_URL, checks links, and deploys. It triggers on every push tomain, daily at 05:23 UTC (to pick up docs changes in uptide-dev/uptide), and onworkflow_dispatch. It no longer filters onsite/**, since the docs come from another repository.sitejob inci.ymlruns the same build and link check on PRs.astro@7.3.8,@astrojs/starlight@0.42.6and@astrojs/markdown-remark@7.3.2are pinned exactly (save-exact). The lockfile is committed and Node 22.22.0 is pinned indocs-site/.node-version. Astro 7 no longer bundles the remark pipeline, which is why@astrojs/markdown-remarkis a direct dependency.Checks run locally
npm run buildwith the real anonymous clone gives 41 docs pages and the Pagefind index.scripts/check-links.mjschecks 2,660 internal links and anchors across landing + docs; none are broken. I confirmed it fails when given a missing page or a missing#anchor./docs/and/docs/commands/fix/, light and dark, with both the mobile and desktop presets. Dark runs used--force-dark-mode; Lighthouse's own screenshots show the dark background, so the dark theme really rendered.node --test 'test/*.test.mjs'passes 11 tests. New ones cover exact versions, nothing committed, title/description fallbacks, the sidebar, and link rewriting. The workflow tests were updated for the new triggers and_siteartifact.Screenshots
/docs//docs/commands/check/The landing captures in
docs/screenshots/site-landing/are refreshed because the nav gained the Docs link.Notes
npm auditreports 10 moderate advisories, all throughpostcss-selector-parser <7.1.6. It is a build-time transitive dependency of Astro, and nothing from it ships to the browser. The only fix offered isnpm audit fix --forcewith breaking changes, so I left it for an Astro update.404.html, which the landing page doesn't have today.🤖 Generated with Claude Code
https://claude.ai/code/session_01VcwhsQvN6vtpRCe4uwfe8z
Generated by Claude Code