Commit eab3926
authored
feat(landing-page): agent design pages β all 21 supported agents (#4050)
* feat(landing-page): add the Gemini CLI agent design page
Add a rich long-form /agents/gemini-design/ page for Google's Gemini CLI,
mirroring the existing agent detail pages: hand-structured how-to content
(what it is, the multimodal + 1M-context design angle, setup, screenshot-to-UI,
GEMINI.md / MCP, a comparison table, pitfalls, and with Open Design), an FAQ
with JSON-LD, and a hero illustration with the Gemini mark fused into the
artwork. Wire it into the /agents/ hub via DETAIL_ROUTES and the Agent nav
dropdown.
Localize across every landing locale: en is hand-written, zh hand-reviewed, and
the other 16 are machine-translated and merged into the split agent-guides part
files (kept under the 1 MiB changed-file blob guard).
* fix(landing-page): render the zh-tw agent guides in Traditional Chinese
The hand-authored INFO_PAGE_COPY['zh-tw'] entry spreads the zh (Simplified)
copy and overrides specific sections, but it never overrode `agentGuides` β so
every agent detail page rendered Simplified Chinese under /zh-tw/ instead of
Traditional (the part-file localization is only consumed by the locales that go
through compactInfoPageCopy, which zh-tw does not).
Add a Traditional Chinese `agentGuides` override to the zh-tw entry (all five
agents, converted with Taiwan terminology) and drop zh-tw from the generated
part files since it never used them. This also fixes the four existing agents
(claude-code, codex, cursor, opencode) that were already shipping Simplified
text on their zh-tw pages.
* feat(landing-page): add five more agent design pages (Copilot, Qwen, Grok, Kimi, DeepSeek)
Extend the agent detail family with five well-documented agents, each built from
the same rich long-form template as the existing pages:
- GitHub Copilot CLI, Qwen Code, Grok CLI, Kimi CLI, DeepSeek TUI
- /agents/<slug>-design/ with hand-structured how-to content (what it is, the
design angle, setup, screenshot-to-UI, extend, comparison, pitfalls, with
Open Design), an FAQ with JSON-LD, and a warm editorial hero illustration with
each agent's real mark fused into the artwork
- wired into the /agents/ hub (DETAIL_ROUTES) and the Agent nav dropdown
Every fact, command, model name, and resource URL was verified against official
sources; nothing fabricated. Localized across all landing locales: en
hand-checked, zh translated, the other 15 machine-translated and merged into the
split agent-guides part files (now 8 parts to stay under the 1 MiB blob guard),
and a Traditional Chinese override added for each agent under the zh-tw entry.
* feat(landing-page): complete the agent design pages β all 21 supported agents
Add the remaining eleven agent detail pages so /agents/ covers every coding
agent Open Design's runtime supports (the hub was previously missing four):
- Trae CLI, Aider, Antigravity, DeepSeek Reasonix (added to the hub + pages)
- Hermes, Devin for Terminal, Pi, Kiro CLI, Kilo, Mistral Vibe CLI, Qoder CLI
Each is built from the same rich long-form template (what it is, the design
angle, setup, reference-to-UI, extend, comparison, pitfalls, with Open Design),
an FAQ with JSON-LD, and a warm editorial hero β the agent's real mark where one
exists, a clean wordmark where it does not. Every fact, command, model name, and
resource URL was verified against the agent's own runtime def and official
sources; sparse agents are described accurately-but-generally rather than with
invented specifics. Also fixes the hub's incorrect vendor for Pi.
Wired into the /agents/ hub (now 21 agents) and the Agent nav dropdown.
Localized across all landing locales: en hand-checked, zh translated, the other
15 machine-translated and merged into the split agent-guides part files (now 15
parts to stay under the 1 MiB blob guard), with a Traditional Chinese override
added for each agent under the zh-tw entry.
* refactor(landing-page): hoist en/zh agent guides out of info-page-i18n.ts
With all 21 agents inlined, info-page-i18n.ts grew to ~1.5 MiB and tripped the
changed-file blob guard (1 MiB). Move the English and Simplified-Chinese
agentGuides maps into agent-guides.en.i18n.ts / agent-guides.zh.i18n.ts and
import them back, mirroring how the other locales' guides already live in split
part files. No behavior change β same data, just hoisted. All changed files are
now under the blob guard.
* fix(landing-page): derive agent-hub count and credential labels from the data
Address review feedback on the agent hub metadata:
- The browser title / meta description hard-coded "17 BYOK adapters" while the
hub now renders 21 cards. Switch the en/zh/zh-tw strings to a {count}
placeholder and substitute allAgents.length in the page, so the metadata can
no longer drift from the rendered list (also fixes a pre-existing unsubstituted
{count} in the ja title).
- Localized hubs showed "BYOK Β· <vendor>" fallbacks for the four newly added
agents and a stale interactive-login string for Pi. Fall back to each agent's
localized guide credential before the BYOKΒ·vendor placeholder, and drop the
stale Pi entries from the per-locale map so every agent shows a real
localized credential.
* fix(landing-page): align hub agent names with the nav and detail pages
The hub cards used 'Qwen' / 'Grok' / 'Cursor Agent' while the nav dropdown and
detail-page breadcrumbs use 'Qwen Code' / 'Grok CLI' / 'Cursor', so the same
routes shipped two public names (and the shorter ones leaked into the hub
JSON-LD). Update the hub tiers to the detail-page names so hub, nav, and
JSON-LD all agree.
* fix(landing-page): localize detail-page breadcrumb and correct Qoder hub metadata
Two more review fixes:
- The agent detail pages hard-coded the second breadcrumb crumb as "Agents" in
both the visible nav and the BreadcrumbList JSON-LD, so localized routes
(/zh/, /ja/, /uk/, β¦) shipped an English crumb and English structured data.
Source it from the locale-aware `copy.agents.breadcrumb` in all 21 detail
pages so the navigation and schema localize with the rest of the page.
- The Qoder hub row said `vendor: 'community'` / `Provider keys via Qoder config
(BYOK)`, contradicting the Qoder guide and runtime def (an Alibaba product
that signs in with a Qoder account / `qodercli login`). Align it to
`vendor: 'Alibaba'` and a Qoder-account credential so the hub onboarding path
matches the guide and runtime.
* fix(landing-page): finish localizing qoder hub credential and CTA landmark
Follow-up to the two remaining localization gaps:
- The per-locale credential map still had stale "provider keys via Qoder config
(BYOK)" overrides for zh / zh-tw / uk, so localized hub cards contradicted the
corrected Alibaba/account metadata. Drop them so qoder falls through to the
localized guide credential (Qoder account) in every locale.
- The CTA section's aria-label was hard-coded "Open Design call to action" in
every detail page, leaving an English-only landmark name on localized routes.
Source it from the localized CTA title (rich.ctaTitle / page.ctaTitle) so the
landmark name translates with the rest of the page.
* fix(landing-page): align the Cursor agent name with the runtime adapter
Reviewer noted the hub still drifted from the runtime registry it documents:
the card/dropdown shipped 'Cursor' while `runtimes/defs/cursor-agent.ts` names
the adapter 'Cursor Agent'. Rename the Cursor hub card, nav dropdown entry, and
detail-page breadcrumb (all locales) to 'Cursor Agent' so the landing page
advertises the same name users select in the app, and reword the registry
comment to describe the display-name contract instead of overstating a literal
1:1 mirror.
* fix(landing-page): correct agent nav active state and align Grok name
Two more review-flagged consistency fixes:
- Every /agents/*-design/ detail page and the /agents/ hub passed active="home"
to Layout, which highlights the Product menu instead of the Agent dropdown.
Switch them to active="agent" so the top-nav active state matches the route.
- The hub/dropdown/guide called the grok adapter "Grok CLI" while the runtime
def is name: 'Grok Build'. Rename it to "Grok Build" across the landing
surface (hub, dropdown, breadcrumb, and guide copy in every locale) so the
advertised name matches the runtime picker users select in the app.
---------
Co-authored-by: Joey <276262049+xne998808-ai@users.noreply.github.com>1 parent 8c3500c commit eab3926
110 files changed
Lines changed: 8926 additions & 2454 deletions
File tree
- apps/landing-page
- app
- _components
- pages
- [locale]/agents
- aider-design
- antigravity-design
- copilot-design
- deepseek-design
- devin-design
- gemini-design
- grok-design
- hermes-design
- kilo-design
- kimi-design
- kiro-design
- pi-design
- qoder-design
- qwen-design
- reasonix-design
- trae-cli-design
- vibe-design
- agents
- aider-design
- antigravity-design
- claude-code-design
- codex-design
- copilot-design
- cursor-design
- deepseek-design
- devin-design
- gemini-design
- grok-design
- hermes-design
- kilo-design
- kimi-design
- kiro-design
- opencode-design
- pi-design
- qoder-design
- qwen-design
- reasonix-design
- trae-cli-design
- vibe-design
- public/agents
- aider-design
- antigravity-design
- copilot-design
- deepseek-design
- devin-design
- gemini-design
- grok-design
- hermes-design
- kilo-design
- kimi-design
- kiro-design
- pi-design
- qoder-design
- qwen-design
- reasonix-design
- trae-cli-design
- vibe-design
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
330 | | - | |
| 330 | + | |
331 | 331 | | |
332 | 332 | | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
333 | 350 | | |
334 | 351 | | |
335 | 352 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
11 | 8 | | |
12 | 9 | | |
13 | 10 | | |
14 | 11 | | |
15 | 12 | | |
16 | 13 | | |
17 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
18 | 26 | | |
19 | 27 | | |
20 | 28 | | |
| |||
24 | 32 | | |
25 | 33 | | |
26 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
27 | 46 | | |
28 | 47 | | |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
0 commit comments