Skip to content

feat: identity redesign v2 — editorial layout, Zinc palette, FAQ page, SEO fixes#13

Open
FlorianBruniaux wants to merge 98 commits into
masterfrom
feat/identity-redesign-v2
Open

feat: identity redesign v2 — editorial layout, Zinc palette, FAQ page, SEO fixes#13
FlorianBruniaux wants to merge 98 commits into
masterfrom
feat/identity-redesign-v2

Conversation

@FlorianBruniaux
Copy link
Copy Markdown
Collaborator

Summary

  • Editorial layout redesign: full left-align on all landing sections, section numbers (01/02/03), zero gradient text/borders/glows — Linear × Vercel × Raycast aesthetic
  • Zinc neutral palette: replaced Slate dark with Zinc tokens across all components and Starlight docs (bg: #09090b, text: #f4f4f5, border: #1f1f23)
  • Docs dark mode: forced via blocking inline script in Head.astro + CSS dual-theme override (Starlight 0.37.7 has no defaultTheme API)
  • FAQ moved to /faq/: dedicated page with FAQPage JSON-LD schema; landing @graph references /faq/ without duplicating content
  • Nav updated: Savings + Compare + FAQ links added; /guide/ → /docs/ across all nav components
  • New sub-pages styled: /cloud/ editorial redesign; /savings/ + /vs/ left-aligned heroes
  • ShareGain component: fixed placement (savings page only, not cloud)
  • Text audit: staccato fixed, French translations corrected, stale stat claims removed across all 6 locales
  • SEO/GEO: theme-color updated to Zinc (#09090b), SpeakableSpecification selectors updated (removed stale .faq-answer), llms.txt committed with /docs/ URLs, robots.txt LLMs: directive added

Test plan

  • pnpm build passes with 0 errors
  • / landing — left-aligned sections, section numbers visible, no gradient text
  • /docs/ — dark mode forced, Zinc palette consistent with landing
  • /faq/ — renders FAQ items, FAQPage schema valid
  • /savings/ — ShareGain component present
  • /cloud/ — no ShareGain, editorial layout
  • Nav: FAQ + Savings + Compare links visible; divider between FAQ and Cloud
  • All nav links use /docs/ not /guide/
  • public/llms.txt — all URLs use /docs/ not /guide/

🤖 Generated with Claude Code

FlorianBruniaux and others added 30 commits May 9, 2026 21:11
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Apply --space-13 (9rem/144px) to all landing sections for breathing room.
Mobile breakpoint uses --space-10 (5rem/80px) to stay proportional.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New keys: caps.*, install.tab.*, install.note.* for all 6 languages.
Capabilities and Install now use data-i18n attributes for proper translation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Exit with code 1 in CI when RTK docs repo is absent, while keeping exit 0 for local dev stubs. Prevents silent deployment failures with empty documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…G 2.2.2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ang-btn (WCAG 2.5.5)

- .nav-icon-btn: 30px → 44px (width/height)
- .copy-btn: 4px → 10px padding, added min-width/min-height 44px + flex centering
- .lang-btn: 3px 8px → 10px 12px padding, added min-height 44px + flex centering

Meets WCAG 2.1 Level AA target touch size requirement (44×44 CSS pixels minimum).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…(INP improvement)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… Header

Replaces #1a2344, #0f1629, #0c1225, #8294ab, and #e2e8f0 with their corresponding CSS custom properties (--border, --bg-card, --bg-alt, --text-muted, --text) for consistent design token usage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Updated Nav architecture sections in both CLAUDE.md files to reference
the actual SiteHeader component with variant prop, instead of
non-existent Nav.astro and ProductNav.astro files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ystem

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move all Hero-exclusive CSS from landing.css into a scoped <style> block in Hero.astro — includes hero layout, badges, stats, terminal demo, viking layout, and responsive overrides.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
FlorianBruniaux and others added 13 commits May 12, 2026 23:14
- Remove Eyebrow import and component usage
- Replace gradient-text span with cta-accent class on title_2
- Remove unused .cta-viking-bg and .cta-viking-bg img CSS rules
- Change .cta-headline font-weight from 800 to 600
- Add .cta-accent { color: var(--accent) } rule

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…inc palette

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- starlight-overrides.css: replace hardcoded Slate dark hex values with
  Zinc CSS custom properties (var(--bg), var(--bg-card), var(--border-light)…)
- savings/index.astro + vs/index.astro: left-align hero (remove justify-content:center,
  text-align:center → left, margin: 0 auto → 0, cta flex-start)
- savings/index.astro: add ShareGain section after Proof
- Proof.astro: bg-alt → bg-card, remove green glow on img hover, remove dead .proof-viking CSS
- ToolComparison.astro: remove gradient+glow session-callout → flat bg-card,
  remove shadow-glow-green from card hover, remove rgba detail bg, left-align stats row
- ShareGain.astro: remove centered card wrapper, add mono eyebrow label,
  editorial left-align h2 + buttons, constrain textarea to 640px column

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Desktop: Why | Demo | Install | Docs | Savings | Cloud SOON
Mobile drawer: + Compare → /vs/
"Tools" removed (was /#tools which no longer exists on landing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Head.astro: inject blocking script to set data-theme=dark + localStorage
  before first paint — prevents light mode flash on system light mode
- starlight-overrides.css: extend selectors to cover [data-theme='light']
  so Zinc palette applies regardless of what Starlight detects
- Header.astro: replace all hardcoded Slate dark hex values with CSS tokens
  (rgba(6,11,24) → var(--bg-glass), #f8fafc → var(--text-bright),
  #64748b → var(--text-dim), #243056 → var(--border-light))
- Header.astro: /guide/ → /docs/, add Savings nav link

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Create src/pages/faq/index.astro with FAQPage JSON-LD schema,
  subpage hero, faq-list details/summary, and CTA → /docs/
- Remove faqItems constant + FAQ <section> from LandingPage.astro
- Update landing @graph FAQPage to reference /faq/ URL (no content duplicate)
- SiteHeader: add FAQ to desktop nav (nav-link-hide-md) + mobile drawer
- SiteHeader + Header: /guide/ → /docs/ links updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix all /guide/ links to /docs/ across Footer, SiteFooter, Install, 404
- Replace staccato "Better reasoning. Longer sessions. Lower costs." with comma-joined phrasing
- Fix cta.sub staccato pattern (Install rtk. Better code. ...) in all 6 locales
- Remove inconsistent "24.6M tokens saved" hero stat; replace with "2,900+ commands measured" to match the proof section and footnote
- Update hero compat strip to list all 8 supported tools (was 5, missing Aider/Windsurf/Cline)
- Narrow "Claude Code" references broadened to "AI coding" in Layout, LandingPage schema, footer tagline, HowTo schema
- Fix FAQ Q5 incorrectly attributing rtk init --global to Claude Code; now distinguishes --claude-code vs --global
- Fix HowTo step 2 in LandingPage schema with correct init flag distinction
- Fix em dash in CloudWaitlist error button text (catch block)
- Translate ~15 French strings that were left as English copy-paste in translations.ts (compare.title, compare.sub, compare.session_headline, compare.session_note, detail_* for all tools, footnote, cloud.desc, cloud.f2.title, cloud.counter, ctx_cursor, ctx_model, impact_codex, impact_windsurf)
- Fix cloud.desc staccato ending "Know what's wasted. Fix it." → comma sentence
- caps.sub: extend with second sentence to break symmetrical 3-tool slogan pattern
- Remove unsourced "18k+ developers" claim from footer CTA strip
- Fix /vs/ schema numberOfItems 6→8 with all 8 tools listed
- Pricing footnote: "avg 89%" → "an average of 89%" for clarity

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- theme-color updated to Zinc bg (#09090b) — was Slate dark (#060b18)
- SpeakableSpecification removes stale .faq-answer (FAQ moved to /faq/)
  replaces with .problem-intro for better AI readability signals
- llms.txt: all /guide/ URLs updated to /docs/ for consistency
- Add llms.txt to git tracking (GEO signal for AI crawlers)
- robots.txt: LLMs: directive already present

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 12, 2026 22:15
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements the “Identity Redesign v2” across the Astro landing site: editorial left-aligned layout, Zinc-based dark palette, new subpages (/cloud, /savings, /vs, /faq), forced dark mode for Starlight docs, and several SEO/i18n infrastructure updates (hreflang, sitemap i18n, llms.txt, robots directive).

Changes:

  • Removes Tailwind integration and migrates styling to CSS tokens + component-scoped styles (Zinc palette).
  • Adds new marketing pages (/cloud, /savings, /vs, /faq) and introduces localized routes via Astro i18n (/fr/, /de/, etc.).
  • Improves SEO metadata: hreflang alternates, updated theme-color, FAQPage schema, llms.txt + robots directive, and doc build hardening in CI.

Reviewed changes

Copilot reviewed 91 out of 111 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
tailwind.config.mjs Removes Tailwind config (Tailwind de-integration).
src/styles/starlight-overrides.css Forces Starlight palette to Zinc tokens across themes.
src/styles/global.css Updates global design tokens to Zinc palette + adds motion-reduction rules.
src/scripts/slideshow.ts Adds pause/play behavior and optional autoplay control for slideshow.
src/scripts/reveal.ts Removes scroll reveal IntersectionObserver script.
src/pages/vs/index.astro Adds “Compare Tools” page with schema + landing styling.
src/pages/vox/index.astro Adds Vox route as wrapper around ProductVoxPage.
src/pages/savings/index.astro Adds “Token Savings” page with schema and Proof/ShareGain sections.
src/pages/icm/index.astro Adds ICM route as wrapper around ProductIcmPage.
src/pages/faq/index.astro Adds dedicated FAQ page with FAQPage JSON-LD schema.
src/pages/cloud/index.astro Adds Cloud waitlist page with schema and CTA.
src/pages/404.astro Updates docs link from /guide/ to /docs/.
src/pages/[locale]/vox/index.astro Adds localized Vox routes via getStaticPaths.
src/pages/[locale]/index.astro Adds localized landing routes via getStaticPaths.
src/pages/[locale]/icm/index.astro Adds localized ICM routes via getStaticPaths.
src/lib/i18n.ts Adds t(key, lang) helper + locale constants.
src/layouts/ProductLayout.astro Introduces shared product layout (header/footer + SEO props).
src/layouts/Layout.astro Adds hreflang alternates + locale-aware <html lang>.
src/data/rss-entries.ts Adds RSS entries for new pages.
src/components/starlight/Head.astro Forces Starlight dark mode before first paint via inline script.
src/components/pages/LandingPage.astro New landing page component with schema graph + GitHub release fetch.
src/components/landing/ShareGain.astro Refactors ShareGain to use server-side i18n helper + new styling.
src/components/landing/Proof.astro Refactors Proof to use server-side i18n helper + new styling.
src/components/landing/Problem.astro Redesigns Problem section to editorial layout with “01” marker + terminals.
src/components/landing/Eyebrow.astro Adds reusable eyebrow component (// label).
src/components/landing/Cta.astro Refactors CTA section styling + i18n strings.
src/components/landing/CompatibilityStrip.astro Adds “Works with” tool pill strip component.
src/components/landing/Capabilities.astro Adds suite “Capabilities” section component (RTK/ICM/Vox).
src/components/global/I18nScript.astro Removes client-side data-i18n translation engine.
src/components/global/Header.astro Updates docs nav URLs and styling tokens; adds Savings link.
src/components/global/Footer.astro Updates footer docs URL to /docs/.
scripts/prepare-docs.mjs Makes missing-docs situation fail CI while allowing local success.
public/robots.txt Adds LLMs: directive pointing to llms.txt.
public/llms.txt Adds LLM-oriented site index + docs URLs.
package.json Removes Tailwind dependencies and integration.
docs/superpowers/specs/2026-05-12-landing-layout-redesign.md Adds design spec for the redesign.
docs/superpowers/plans/2026-05-08-seo-audit-fixes.md Removes prior SEO audit implementation plan doc.
docs/baseline-2026-05-09.md Adds Lighthouse baseline documentation.
CLAUDE.md Documents CI docs pinning variable + nav architecture update.
astro.config.mjs Adds Astro i18n config + sitemap i18n mapping; removes Tailwind integration.
.superpowers/brainstorm/55318-1778617310/state/server.pid Adds brainstorm runtime PID artifact (local state).
.superpowers/brainstorm/55318-1778617310/state/server.log Adds brainstorm runtime log artifact (local state).
.superpowers/brainstorm/55318-1778617310/state/server-stopped Adds brainstorm runtime stop marker (local state).
.superpowers/brainstorm/55318-1778617310/state/events Adds brainstorm event log artifact (local state).
.superpowers/brainstorm/55318-1778617310/content/waiting-1.html Adds brainstorm generated HTML artifact (local state).
.superpowers/brainstorm/55318-1778617310/content/waiting-2.html Adds brainstorm generated HTML artifact (local state).
.superpowers/brainstorm/55318-1778617310/content/section-rhythm.html Adds brainstorm generated HTML artifact (local state).
.superpowers/brainstorm/55318-1778617310/content/section-headers.html Adds brainstorm generated HTML artifact (local state).
.gitignore Adds ignores for claudedocs/ and .worktrees.
.github/workflows/deploy.yml Allows pinning RTK docs ref via RTK_DOCS_REF variable.
.claude/skills/ui-ux-pro-max/scripts/search.py Adds UI/UX search tool script.
.claude/skills/ui-ux-pro-max/data/web-interface.csv Adds UI/UX rules dataset.
.claude/skills/ui-ux-pro-max/data/stacks/vue.csv Adds Vue stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv Adds SwiftUI stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv Adds Svelte stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/react.csv Adds React stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv Adds React Native stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv Adds Next.js stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv Adds Jetpack Compose stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv Adds HTML/Tailwind stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv Adds Flutter stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/stacks/astro.csv Adds Astro stack guideline dataset.
.claude/skills/ui-ux-pro-max/data/react-performance.csv Adds React performance rules dataset.
.claude/skills/ui-ux-pro-max/data/landing.csv Adds landing-page pattern dataset.
.claude/skills/ui-ux-pro-max/data/charts.csv Adds chart selection dataset.
.claude/palettes.md Adds palette decision doc (Zinc retained).
.claude/commands/review.md Adds repo-specific review checklist command.
.claude/CLAUDE.md Updates Claude guidance re: nav architecture.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)

public/llms.txt:22

  • Quick Start currently says to run rtk init --global to install the Claude Code hook, which contradicts the rest of the site/docs that use rtk init --claude-code for Claude Code. Please correct the command here to prevent users (and LLMs) from following the wrong setup.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +79 to +81
<Proof />

<ShareGain />
Comment on lines +12 to +16
<p class="share-eyebrow">// share your savings</p>
<h2>
{t('share.title_1', lang)} <span class="share-accent">{t('share.title_2', lang)}</span>
</h2>
<p class="share-gain-desc" set:html={t('share.desc', lang)}></p>
Comment on lines +18 to 20
<div class="share-gain-body">
<textarea class="gain-textarea" id="gain-paste" rows="6" placeholder={t('share.paste_placeholder', lang)}></textarea>

Comment thread src/layouts/Layout.astro
Comment on lines +32 to +35
function stripLocalePrefix(path: string): string {
const NON_DEFAULT = ['fr', 'es', 'de', 'zh', 'ja']
return path.replace(new RegExp(`^/(${NON_DEFAULT.join('|')})/`), '/')
}
Comment thread src/layouts/Layout.astro
Comment on lines 70 to +87
<!doctype html>
<html lang="en" data-theme="dark">
<html lang={Astro.currentLocale ?? 'en'} data-theme="dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#060b18" />
<meta name="theme-color" content="#09090b" />

<title>{title}</title>
<meta name="description" content={description} />
{noIndex && <meta name="robots" content="noindex,nofollow" />}
<link rel="canonical" href={canonical} />

<!-- hreflang alternates -->
<link rel="alternate" hreflang="x-default" href={`${siteUrl}${canonicalPath}`} />
<link rel="alternate" hreflang="en" href={`${siteUrl}${canonicalPath}`} />
{NON_DEFAULT_LOCALES.map(l => (
<link rel="alternate" hreflang={l} href={`${siteUrl}/${l}${canonicalPath}`} />
))}
Comment thread public/llms.txt
Comment on lines +7 to +8
- [RTK](https://www.rtk-ai.app/): CLI proxy for AI coding tools. Compresses git, cargo, grep, find, docker, kubectl, and 50+ CLI commands before output enters the AI context window. Average 89% noise reduction measured across 2,900+ real-world commands. `rtk init --global` installs a PreToolUse hook in Claude Code that works transparently. Session analytics via `rtk gain`.
- [Vox](https://www.rtk-ai.app/vox/): Local-first text-to-speech CLI for Claude Code. Hear task completions aloud (~50ms on macOS), get spoken summaries, clone your voice from a 10-second sample. 3 TTS backends: macOS say, MLX-powered qwen (Apple Silicon), pure-Rust qwen-native (Metal + CUDA). 8 MCP tools. 100% local, zero API calls, MIT licensed.
Comment thread src/data/rss-entries.ts
Comment on lines +18 to +22
type: 'new_page',
title: 'RTK Cloud waitlist page is live',
date: 'May 9, 2026',
description: 'The RTK Cloud page is now live with a waitlist signup and a share-your-savings section. Cloud features will bring team dashboards and org-wide hook deployment.',
link: 'https://www.rtk-ai.app/cloud/',
Comment thread src/pages/vs/index.astro
Comment on lines +145 to +146
<script>
</script>
Comment on lines +148 to +149
<script>
</script>
Comment on lines +93 to +94
<script>
</script>
FlorianBruniaux and others added 14 commits May 13, 2026 10:13
* feat(tokens): add calm-mode spacing, card-muted, pill, eyebrow tokens

* feat(styles): add .section-calm, .card-muted, .pill-neutral, .eyebrow utilities

* feat(hero): compress stats, collapse SEO paragraph into details toggle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(landing): add CompatibilityStrip — 'Works with' AI tool pill row

* feat(landing): add Capabilities section — Context Forge suite frame (RTK/ICM/Vox)

* feat(landing): wire CompatibilityStrip + Capabilities into landing section order

* refactor(problem): neutral cards, colored evidence in terminal blocks only

* feat(landing): add Eyebrow component, wire into Problem/Install/CTA/Capabilities

* refactor(cta): viewport-height section, gradient headline, viking background at 12% opacity

* feat(install): persona tabs for Claude Code / Cursor / Other AI CLI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(whitespace): section padding 80px → 144px (--space-13)

Apply --space-13 (9rem/144px) to all landing sections for breathing room.
Mobile breakpoint uses --space-10 (5rem/80px) to stay proportional.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): add translations for Capabilities and Install persona tabs

New keys: caps.*, install.tab.*, install.note.* for all 6 languages.
Capabilities and Install now use data-i18n attributes for proper translation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ci): fail build when docs source is missing in CI

Exit with code 1 in CI when RTK docs repo is absent, while keeping exit 0 for local dev stubs. Prevents silent deployment failures with empty documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* perf: remove 380KB orphaned PNG screenshots (WebP versions are used)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* perf(icm): convert hero image to WebP + fetchpriority (LCP improvement)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* perf: add fetchpriority=high + decoding=async on hero image

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(a11y): sync <html lang> attribute with language switcher

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(a11y): add aria-label to main nav

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ux: remove unsourced 'Starred by' carousel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(a11y): slideshow pause/play + respect prefers-reduced-motion (WCAG 2.2.2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(a11y): touch targets minimum 44x44px on nav-icon-btn, copy-btn, lang-btn (WCAG 2.5.5)

- .nav-icon-btn: 30px → 44px (width/height)
- .copy-btn: 4px → 10px padding, added min-width/min-height 44px + flex centering
- .lang-btn: 3px 8px → 10px 12px padding, added min-height 44px + flex centering

Meets WCAG 2.1 Level AA target touch size requirement (44×44 CSS pixels minimum).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* perf: replace transition:all with targeted properties in landing.css (INP improvement)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(tokens): replace hardcoded hex with CSS custom properties in docs Header

Replaces #1a2344, #0f1629, #0c1225, #8294ab, and #e2e8f0 with their corresponding CSS custom properties (--border, --bg-card, --bg-alt, --text-muted, --text) for consistent design token usage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ux: use global SiteFooter on /vox/ and /icm/ for cross-product nav

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* copy: shorten hero-context + remove em dashes (anti-AI markers)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: sync CLAUDE.md — SiteHeader replaces Nav.astro/ProductNav.astro

Updated Nav architecture sections in both CLAUDE.md files to reference
the actual SiteHeader component with variant prop, instead of
non-existent Nav.astro and ProductNav.astro files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: remove Tailwind — zero utility classes used, pure CSS design system

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(css): scope Hero styles into component

Move all Hero-exclusive CSS from landing.css into a scoped <style> block in Hero.astro — includes hero layout, badges, stats, terminal demo, viking layout, and responsive overrides.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(css): scope Nav/Header styles into SiteHeader component

* refactor(css): scope Install styles into component

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(css): scope Problem styles into component

* refactor(css): scope ToolComparison styles into component

* refactor(css): scope DemoSlideshow styles into component

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(css): scope Proof styles into component

* refactor(css): scope ShareGain styles into component

* refactor(css): scope CloudWaitlist styles into component

* refactor(css): scope Cta styles into component

* refactor(css): scope Footer styles into component

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(layout): create ProductLayout.astro shared shell for product pages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(vox): migrate to ProductLayout + @graph JSON-LD schema

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(icm): migrate to ProductLayout + @graph JSON-LD schema

* fix(ci): allow pinning RTK docs to a specific tag via RTK_DOCS_REF

* feat(i18n): add missing UI/aria keys to translations (S5-B1)

Audited all .astro files in components/landing/, components/global/SiteHeader.astro,
and pages/index.astro, vox/index.astro, icm/index.astro.

Added 35 new keys across 3 namespaces:
- eyebrow.*  (4 keys): Eyebrow label props previously passed as hardcoded strings
- ui.*       (9 keys): terminal title, hero "stars" suffix, works-with label, nav links, search label, install docs link
- aria.*    (14 keys): copy, prev/next, pause/resume slideshow, choose-ai-tool tablist, main-nav, open/close menu, search, ko-fi, discord, compat-tools, share_x/bsky/linkedin

All 6 locales covered (en, fr, es, de, zh, ja).
HTML_KEYS set and existing 142 keys are untouched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): add i18n helper, Astro i18n config, sitemap integration (S5-B2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(pages): extract shared page templates for i18n routing (S5-B3)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): migrate landing components to server-side t() (S5-B4)

Replace all data-i18n / data-i18n-html DOM attributes with server-side
t(key, lang) calls at build time across 11 landing components + SiteHeader.
LandingPage.astro now propagates lang prop to every child component.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): add [locale] catch-all routes for 5 non-EN locales (S5-B5)

Creates dynamic [locale] pages for fr/es/de/zh/ja: landing (/fr/),
Vox (/fr/vox/), ICM (/fr/icm/). Threads lang prop through ProductLayout
to SiteHeader so nav text renders in the correct locale. Build: 139
pages (15 new vs baseline 124).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): rewrite lang switcher to nav links, add hreflang to Layout (S5-B6)

Replace localStorage-based button switcher with proper <a> navigation links
using getRelativeLocaleUrl. Add 7 hreflang alternate tags to Layout.astro head
and dynamic html[lang] from Astro.currentLocale for all locale pages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): remove I18nScript, complete server-side i18n migration (S5-B7)

Delete client-side I18nScript.astro (data-i18n DOM engine) and remove all
imports from LandingPage.astro and ProductLayout.astro. All translations are
now rendered server-side at build time via locale routes — no runtime JS needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(landing): split landing into focused sub-pages (/savings, /vs, /cloud)

Slim /: keeps Hero, Problem, DemoSlideshow, Install, FAQ, CTA.
Proof moves to /savings/, ToolComparison to /vs/, CloudWaitlist + ShareGain to /cloud/.
Hash-redirect script on / handles old anchors (#proof, #compare, #cloud, #share-gain).

Landing nav /#compare link updated to /vs/.
3 RSS entries added for the new pages.
Each sub-page has compact hero breadcrumb, the relevant component, footer CTA → /#install.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(nav): add /cloud/ link to landing nav (desktop + mobile drawer)

Cloud page was unreachable from the main navigation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(cloud): add initReveal() + nav Option B cleanup

Cloud page:
- Add initReveal() so .reveal elements animate in instead of staying invisible

Landing nav (Option B):
- Drop Ko-fi icon
- Drop Cloud from desktop nav (stays in mobile drawer)
- "Tools" → "Compare" (clearer intent)
- Replace 6 lang buttons with globe icon → dropdown panel (details/summary, no-JS toggle)
- Close on outside click and after lang selection

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(nav): lang dropdown vertical layout

* fix(footer): fix dead links + add new sub-pages

- `#install` → `/#install` (absolute) in pre-footer CTA and Install column
- `/guide/features/` (404) → `/savings/` (Token Savings page)
- `#cloud` → `/cloud/` (RTK Cloud page)
- Add Vox/ICM sub-page links: how-it-works + ICM compare
- Add "Explore" section with /savings/ and /vs/
- Add .footer-sub-link CSS for indented sub-page items

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* seo: add JSON-LD breadcrumbs, fix dates, and enrich sub-page schemas

- /savings/ : BreadcrumbList + Dataset (6 variableMeasured), datePublished fixed, ogType=article
- /vs/      : BreadcrumbList + ItemList (6 compatible tools), datePublished fixed, ogType=article
- /cloud/   : SoftwareApplication (PreOrder) + BreadcrumbList — zero schema → proper markup
- /icm/     : BreadcrumbList prepended + SpeakableSpecification on SoftwareApplication

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* seo: fix OG image, datePublished, and add BreadcrumbList to /vox/

- og-icm-banner.png: 1024×254 → 1200×630 (proper OG card with title, subtitle, illustration)
- /: datePublished 2025-01-01 → 2026-01-29 (earliest verifiable CHANGELOG entry)
- /vox/: add BreadcrumbList schema (RTK → Vox)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* seo: dedicated OG images, BreadcrumbLists, SpeakableSpec, real dates

OG images (1200×630, new):
- og-savings.png — 89% stat + command breakdown
- og-vs.png — RTK vs 6 AI coding tools
- og-cloud.png — coming soon + feature list
- og-icm-how-it-works.png — 3 memory systems
- og-icm-vs.png — comparison table vs Mem0/Zep/mcp-memory

Schemas:
- /icm/how-it-works: BreadcrumbList (3-level) + datePublished 2026-04-29
- /icm/vs: BreadcrumbList (3-level) + datePublished 2026-04-29
- /vox: SpeakableSpecification + datePublished 2026-04-16

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(subpages): replace scoped .hero/.hero-sub/.hero-cta with standalone .subpage-* classes

* feat(nav): add 'soon' badge to Cloud nav link

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…, i18n, sub-pages

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ers lang prop

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ngs, 6 sections

Restores Hero (two-col terminal, no viking), Problem (section-num 01),
Cta (no cta-viking-bg), landing.css (section-num, left-align, bg-card banding).
LandingPage trimmed to 6 sections: Hero→Problem→Layers→Demo→Install→Cta.
Hero stats updated: 47k fallback, 83.7% HN-verified stat.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…onents

Viking WebPs were moved to _archive/ during the squash rebase.
Removed section-viking divs from ToolComparison, ShareGain, and Proof
so these components no longer reference archived files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ms.txt claims

- LandingPage: add inline faqItems with 6 Q&A pairs, add mainEntity to FAQPage
  schema (was empty URL pointer — zero GEO value; now provides full question
  context for AI search engines)
- LandingPage: update SpeakableSpecification cssSelector from stale
  .hero-context/.problem-intro (not in new design) to .hero-sub/.section-sub
- llms.txt: replace unverifiable "138M tokens" claim with HN-verified data
  (83.7% on 7,061 commands = 24.6M tokens saved); fix "50+ commands" to
  "30+ ecosystems" (matches CHANGELOG/official copy)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Meta descriptions:
- /savings/: remove "138M tokens" unverified claim, trim to 155 chars,
  update to HN-verified data (83.7% / 7,061 commands / 24.6M tokens)
- /vs/: trim from 169 to 160 chars
- /team/: expand from 111 to 139 chars (was below 120-char floor)
- /: update "2,900+" → "7,061 real commands" (HN-verified, stronger claim)

Schemas:
- /savings/ Article: update headline + description to 7,061 / HN-verified data
- /savings/ Dataset: update variableMeasured from "2900+" to "7061", add
  HN-verified reduction (83.7%) and tokens saved (24.6M) as PropertyValue
- /vs/ ItemList: numberOfItems 6→8, add OpenAI Codex and Cline as items 3/8
- /savings/ visible hero text: "2,900+ actual developer sessions" → "7,061"

OG images:
- Create public/og-image.jpg (JPEG q85, 28KB vs 430KB PNG — 15× smaller)
- Layout.astro default: /og-image.png → /og-image.jpg
- /team/: explicit ref /og-image.png → /og-image.jpg
- /vox/: og-vox.png (missing file) → /og-image.jpg stop-gap
- /icm/: og-icm-banner.png (missing file) → /og-image.jpg stop-gap

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…s codebase

Remove AI marker em dashes from all user-facing copy, code comments, and
JSON-LD strings across 27 files. Brand name separators (RTK — Rust Token Killer,
Vox — Give Claude Code a Voice, etc.) and i18n price ranges are preserved as
intentional typographic conventions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Background tokens: #060b18→#0d1117, #0c1225→#161b22, #0f1629→#21262d,
borders: #1a2344→#30363d. All rgba hardcodes updated in CloudWaitlist
and Header.astro to match new base bg.

Cloud page: pass lang="en" to CloudWaitlist, remove ShareGain from
the middle of the flow to restore the clean hero → card → footer CTA
layout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the separate Header.astro (minimal nav: Why/Install/Docs/Search/GitHub)
with a thin wrapper around SiteHeader.astro. /guide/* pages now display
the full landing nav (Why, Demo, Install, Docs, Savings, FAQ, Tools,
Cloud SOON, Discord, Search, GitHub) — consistent with the rest of the site.

Single source of truth, no code duplication.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rapper

- Restore GitHub Dark (C) palette over Zinc A from remote
- Fix 5 prose em dashes in translations.ts (EN/FR/ES/DE)
- Fix 2 em dashes in rss-entries.ts title strings
- Restore 6-line SiteHeader wrapper for /guide/* header (fixes IconGitHub build error from merge conflict)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

2 participants