Skip to content

Redesign subpages to match the landing page - #9

Merged
trivedi-vatsal merged 4 commits into
mainfrom
feat/subpage-redesign
Aug 29, 2026
Merged

Redesign subpages to match the landing page#9
trivedi-vatsal merged 4 commits into
mainfrom
feat/subpage-redesign

Conversation

@trivedi-vatsal

Copy link
Copy Markdown
Contributor

Summary

  • Subpages use the same header/footer, PageHero, and section system as the homepage.
  • One site map in src/lib/site.ts drives nav, footer, and 404.
  • Rebased onto main so v1.0.0 copy and live demo runUrls stay.

Test plan

  • pnpm run build and pnpm run check-links
  • Spot-check /product/ /why/ /open-source/ /404 in the preview
  • Homepage #demo still has six run links
  • Hero still says v1.0.0 is out

Made with Cursor

trivedi-vatsal and others added 4 commits August 29, 2026 13:58
Every inner page was the same narrow prose column while the homepage was a
fully designed landing. This gives the subpages the landing page's visual
language without changing what they claim.

- Add src/components/marketing/: PageHero (breadcrumbs, atmosphere, optional
  product visual), Section (default/muted/inverted bands), Card/Grid, Steps,
  MarkList, CodePanel, CheckRunPanel, Callout, Prose, CtaLink/Actions and
  NextSteps.
- Rewrite all 14 subpages plus the 404 with them: facts that were buried in
  paragraphs are now field tables (/pipeline), a comparison table
  (/compare/github-actions), grouped glossary cards (/concepts), topic cards
  (/security) and numbered flows (/product, /integrations/github-app). Each
  page ends with cross-links instead of a bare CTA row.
- Replace the two ASCII diagrams on /product and /self-hosted with wire
  diagrams that wrap on a phone.
- Fix an unlayered `a { color: inherit }` reset that beat every Tailwind
  colour and underline utility on anchors, so inline links were rendering as
  plain body text everywhere.
- Drop the stale Header/CheckRunPanel/RunFlow components: nothing imported
  them and they referenced CSS variables the theme no longer defines.

Copy is restructured, not extended — claims still track the docs and the code
repo. `pnpm run build && pnpm run check-links` clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The redesign fixed the layout but left every inner page thinner than the
landing page — 354-650 words against its 893. This adds the substance, sourced
from the docs and code repos rather than invented.

Each page now carries the material a reader needs before installing:

- /why: Zuul as named prior art (what is borrowed, what is rejected), the five
  things this is genuinely better at, the eight it is genuinely worse at, and
  the five questions people ask first. 486 -> 1152 words.
- /product: one-live-run-per-commit semantics, the four ways into the process,
  binding -> App -> settings precedence, and an honest section on concurrency,
  restarts, backups and monorepos. 650 -> 1225.
- /pipeline: the five keys, Node defaults by lockfile, binding overrides, what
  a pipeline cannot express, and what stops a run. 394 -> 875.
- /self-hosted: requirements, what has to survive a redeploy, and day-two
  reality — restarts, forward-only migrations, sizing, pruning. 374 -> 886.
- /security: the bindings allow-list as the trust boundary, key rotation, and
  a table of what is reachable without a session. 354 -> 809.
- /compare: the pick-by-what-you-want table plus Woodpecker, Drone,
  actions/runner and Jenkins with real choose-this-instead guidance. 397 -> 823.
- The hub and leaf pages get the same treatment; all are now 700-1225 words
  against the homepage's 893.

Add a Faq component for the positioning questions, and fix Steps so a step
title renders markup instead of escaping it.

Every claim traces to openpreflight/docs or the code repo README, and how-to
still links out rather than being duplicated here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two problems: no page listed the whole site, and the same facts were being
restated on up to eight pages.

Navigation

- `siteSections` in src/lib/site.ts is now the single source of truth. The
  header nav, the footer, and the 404 all render it, so a route cannot exist
  without being reachable from every page.
- The header gains grouped menus (Product, Why, Trust) with a description per
  link, and the mobile sheet lists every group rather than four flat links.
- The footer carries all 14 routes plus the reference links, in four columns.
  It is static HTML, which is what makes it the fallback for the JS-driven
  menus.

De-duplication

- Removed the "Keep reading" block from all 15 pages, and deleted the
  component. It was the same section fifteen times, doing a job the nav and
  footer now do properly.
- Gave every repeated fact one owner and left a link everywhere else:
  concurrency and sizing, restarts, backups -> /self-hosted; the bindings
  allow-list, clone credentials, fork PRs, shareable logs, container
  hardening -> /security; the ceiling and the not-in-v1 list -> /why; dedup
  semantics -> /product; the neighbours -> /compare; branch-protection naming
  -> /use-cases/private-repos; the offline test suite -> /open-source.
- An audit of 16 previously-repeated claims now shows none on more than two
  pages, and the pairs are the homepage summary plus its owner.

Verified over CDP against the built output: the menus open on click and on
Enter, Escape closes them, the mobile sheet carries all 14 routes, and every
page's footer does too.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The branch is rebased onto main so the tagged release is stated, and the
dogfooding FAQs match the live demo instance.

Co-authored-by: Cursor <cursoragent@cursor.com>
@trivedi-vatsal
trivedi-vatsal merged commit 8329d82 into main Aug 29, 2026
1 of 2 checks passed
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