fix(design): contrast, progressive disclosure, and honest hierarchy across the public site - #208
Merged
Merged
Conversation
The dark --text-muted token (oklch 0.34 on a 0.07 page) and the white/40 changelog/footer utilities rendered real copy at ~2:1 contrast — a systemic WCAG failure across pricing, docs, changelog, and footer. Raise them to legible-but-still-muted values and move the doc subtitle off text-muted entirely (it is the document's one-line pitch, not metadata). Also trim two structural dead-space sources found in the same audit: - surface cards forced min-h 320px around ~120px of content; - the 84vh hero fold on /mission pushed ~700px of empty black between the statement and its body copy — add a compact fold variant and use it there. All changes live in globals.css so check:design stays authoritative. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
…lp-first - /blog and /changelog served byte-identical copies of /thoughts and /releases under different names; they now redirect() to the canonical URL, and every nav/footer label matches the destination page's own title (nav "Blog" -> "Thoughts", footer links point at /releases). - /philosophy had no inbound link anywhere; add it to Product > Understand. Add Investors to the footer Learn group for the same reason. - Trim the OrangeCat/Solon dropdown descriptions to one sentence each — the essay citation belongs on a page, not in a hover. - The nav item says "Support" but the page opened with donations; lead with a Get-help section (docs, GitHub issues, email) and move the funding content below its own heading. - Collapse the 14-site fleet grid in the footer into a <details> disclosure so the three product pillars stay primary; links stay in the DOM for crawlers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
…er count The investors page closed with the generic "Begin." sign-up CTA — the wrong ask for this audience; replace it with a direct founder-contact CTA (deck on request). The Traction section was one prose wall; break it into scannable bullets and surface the founder's real fleet metrics via the same getHeroFleetSnapshot source the homepage hero uses (same never-fabricate fallback: no data renders nothing). Whitepaper said "three subscription levels" while /pricing sells four (Free + three paid) — describe all four honestly, and bump the stale v0.1 / 2026-05-15 badge to v0.2 with today's date since the content changed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
Fifteen H2 sections of continuous prose with no overview and headings only one step above body size made the whitepaper hard to navigate or skim. Derive an anchored ToC from the parsed H2 blocks (ids and links share one slugify, so they cannot drift) and add a ui-public-prose-doc variant in globals.css that scales H2/H3 up for long documents while short thought posts keep the tighter scale. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
…rchives The thoughts index rendered 63 full-abstract cards in one unpaginated wall and the changelog expanded 20+ patch releases end to end — both buried everything below the fold. Lead each page with what a visitor actually came for: - Thoughts: ten most recent essays with 2-line clamped abstracts, the rest grouped into per-year <details> sections. Search and tag chips keep filtering across the whole set. - Releases: only the current minor line (v0.8.x) renders expanded; older lines collapse into per-minor <details> groups, and a compact version index at the top anchors to entries/groups. Native <details> disclosure on both — no JS required to open, and every link stays in the DOM for crawlers. New archive/index styles live in globals.css. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
The homepage embedded the entire DesktopDownload module (platform
picker, web-vs-desktop comparison, three setup steps, prerequisites) —
a wholesale duplicate of /download that made the page endless. Replace
it with a short band: what Fleet Runner is, honest platform status
derived from the same config, one link to /download.
It also closed with two back-to-back sections making the same pitch
("Choose your entry point" / "Not another coding agent"), the latter's
three points repeating the EXECUTION/CONTROL and SURFACE sections
above. Merge them into one closer: the differentiating line, then the
three concrete entry paths.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
Eleven phases with an invented AFTER/THEN/LATER/CONVERGE vocabulary and 5-8 expanded bullets each read as an internal planning doc, not a public roadmap. Restructure into three buckets a visitor can parse in one pass — "Shipping now", "Next", "Research" — with each item as a one-liner and its detail bullets collapsed into <details>. Status claims stay honest: nothing moved buckets optimistically (the Next summary keeps the original sequencing; Research explicitly states nothing there is available), and the two strategy-essay sections (agent convergence, stakeholder graph) shrink to a short summary plus a link to the /thoughts essay that carries the full argument. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01179dZmbrVCoaZzrmyqzDgD
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.
What
A full-page audit of all 18 public pages (production screenshots + source cross-reference) found one systemic disease — unbounded essay dumps with no progressive disclosure (
/thoughts: 63 full-abstract cards in a 9,200px wall;/roadmap: 10,600px across 12 look-alike sections;/whitepaperand/changelogsimilar) — plus a site-wide WCAG contrast failure baked into the dark tokens. This pass fixes both, page by page:--text-mutedoklch 0.34 → 0.55; changelog date/version and footer blurbs offwhite/40; doc subtitles offtext-muted. All inglobals.csssocheck:designstays authoritative.<details>(works JS-free); search/tag filters still cover the full set./thoughtsoriginals./downloadpage embed replaced by a short download band; overlapping closers merged; dead card space reduced./blog→/thoughts,/changelog→/releases(redirects; labels now match destinations)./philosophy(nav) and/investors(footer); OrangeCat/Solon dropdown blurbs trimmed to one sentence; footer's 14-site fleet grid collapsed behind<details>so the three pillars stay primary (links remain in the DOM for crawlers).Verification
npm run verifyexit 0 (tsc, lint — 0 errors/3 pre-existing warnings, design check, desktop check, 150+ unit/home/ops tests).package-lock.jsonuntouched. The landing page's real-data contract is preserved.Generated by Claude Code