feat: identity redesign v2 — editorial layout, Zinc palette, FAQ page, SEO fixes#13
Open
FlorianBruniaux wants to merge 98 commits into
Open
feat: identity redesign v2 — editorial layout, Zinc palette, FAQ page, SEO fixes#13FlorianBruniaux wants to merge 98 commits into
FlorianBruniaux wants to merge 98 commits into
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…kground at 12% opacity
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>
- 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>
…, 6-section structure
…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>
There was a problem hiding this comment.
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 --globalto install the Claude Code hook, which contradicts the rest of the site/docs that usertk init --claude-codefor 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 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 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 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 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 on lines
+145
to
+146
| <script> | ||
| </script> |
Comment on lines
+148
to
+149
| <script> | ||
| </script> |
Comment on lines
+93
to
+94
| <script> | ||
| </script> |
* 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>
…feat/identity-redesign-v2
…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>
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.
Summary
defaultThemeAPI)Test plan
pnpm buildpasses 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 layoutpublic/llms.txt— all URLs use /docs/ not /guide/🤖 Generated with Claude Code