Skip to content

docs: refresh landing page copy and generate Popular models from the catalog - #389

Merged
sabrinaaquino merged 7 commits into
mainfrom
docs/landing-copy-polish
Aug 5, 2026
Merged

sabrinaaquino merged 7 commits into
mainfrom
docs/landing-copy-polish

Conversation

@sabrinaaquino

@sabrinaaquino sabrinaaquino commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Copy pass on the docs landing page (overview/about-venice.mdx, which / redirects to), plus a generator so the Popular models section stops going stale.

Copy

  • Repositioned the hero. It now states the whole surface in one line: private, unrestricted access to all the leading AI models across text, image, video, and audio, behind one API key. The subtitle carries the tool layer (web search, document parsing, MCP), which nothing else above the fold covered. OpenAI compatibility is a migration detail rather than the reason to choose Venice, so it moved out of the headline.
  • Rewrote the frontmatter description to match, keeping "OpenAI-compatible" in there since it is a high-intent search term for developers evaluating a switch.
  • Retargeted the Endpoints subtitle. It used to end in "behind one API key", which the hero now says, so it covers what is genuinely shared across modalities instead: auth, error codes, and rate limit headers.
  • Endpoint cards no longer restate their own chips. Every card's description listed the same capabilities as the chips rendered directly beneath it (Chat said "reasoning, tool use, and streaming" above chips reading Streaming/Tools/Vision; Video said "text-to-video, image-to-video, reference-to-video" above chips saying exactly that). Each description now carries information the chips don't: model range for Chat, preset styles and inpainting for Image, voice cloning for Audio, and the quote endpoint for Video.
  • Minor grammar fix on the x402 pricing card ("No account or API key required").

Popular models

The three cards were hand-written and had rotted: the page still advertised Kimi K2.6 and Claude Opus 4.7 long after both were superseded, and #387 left behind empty venice-model-card-stats divs when it stripped the inlined model data.

scripts/generate-popular-models.js now renders the grid from data/static-models.json, the snapshot the hourly workflow already refreshes. Name, provider, context window, privacy tier, and model ID all come from the catalog, so they cannot drift again. The generator is wired into update-static-models.js ahead of the pricing generator, which calls process.exit(0) when it has nothing to write, and sync-static-models.yml now stages overview/about-venice.mdx alongside the other generated files.

Currently featured: kimi-k3, claude-fable-5, zai-org-glm-5-2.

A few decisions worth reviewing:

  • Featured ids are pinned, not derived. Which models to showcase is an editorial call, and "newest by created" would surface things like deepseek-v4-flash-0731. If a pinned id leaves the catalog, the newest model from the same provider takes the slot and the run logs a warning, so the grid never renders a card for a model nobody can call. Verified by pointing an entry at a nonexistent id.
  • Logos go through a CSS mask. The SVGs in images/icons/models are authored with fill="currentColor", so an <img> would render them invisible. Masking paints the shape with the brand gradient, matching how the model catalog draws its avatars. The generator resolves each filename against disk and throws if it is missing, since these paths are case-sensitive once deployed (Zhipu.svg).
  • Anonymized gets its own pill colour. The existing .venice-model-card-privacy is green, which would have implied Claude Fable 5 is as private as the others.
  • Restoring the model ID to each card makes the section subtitle true again, so it goes back to telling readers to pass the ID as their model parameter.
  • The four /overview/models links now point straight at /models/overview instead of bouncing through the docs.json redirect. The redirect stays for inbound external links.

Notes

Scoped to the English page. Translated copies under ar/, de/, es/, fr/, it/, ko/, pt-BR/, and zh/ are handled by the separate "translate across 8 locales" PRs, matching how #375 and #373 were done.

Test plan

  • node scripts/generate-popular-models.js produces the expected cards and is idempotent on a second run
  • Fallback path exercised by pinning a nonexistent id, correctly substitutes the newest Kimi and warns
  • overview/about-venice.mdx compiles under @mdx-js/mdx
  • mintlify dev and eyeball the Popular models grid in light and dark mode, confirming the three logos render
  • Check the hero tagline wrapping at mobile width, since it is now a long single sentence
  • Confirm the next scheduled Sync static model snapshot run leaves the landing page untouched when the catalog has not moved

Rewrite the endpoint card descriptions so they add information instead of
restating the chips directly beneath them, and give the hero and Endpoints
subtitles distinct jobs rather than both ending in "behind one API key".

The Popular models subtitle told readers to use the model ID as their model
parameter, but the cards stopped rendering IDs in #387, so it now points at
the full catalog instead.
@mintlify

mintlify Bot commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
veniceai 🟢 Ready View Preview Aug 5, 2026, 12:07 AM

@sabrinaaquino sabrinaaquino changed the title docs: tighten landing page copy and remove em dash docs: tighten landing page copy Aug 5, 2026
OpenAI compatibility is a migration detail rather than the reason to pick
Venice, so the hero now leads with private, unrestricted access to the leading
models. The subtitle adds the tool surface (web search, document parsing, MCP)
so the page reads as more than a model gateway.

Compatibility is still called out in the meta description and on the Chat
Completions card, where developers evaluating a switch will look for it.
The three cards were hand-written, so they rotted: the page still advertised
Kimi K2.6 and Claude Opus 4.7 well after both were superseded, and #387 left
behind empty stats divs when it stripped the inlined model data.

scripts/generate-popular-models.js now renders the grid from
data/static-models.json, which the hourly workflow already refreshes, so the
name, provider, context window, privacy tier, and model ID always match the
catalog. Which models are featured stays an editorial choice, so the ids are
pinned; if a pinned id leaves the catalog the newest model from the same
provider takes the slot rather than leaving a card for a model nobody can call.

Cards now carry the provider logo. The SVGs in images/icons/models are authored
with fill="currentColor", so they are painted through a CSS mask the way the
model catalog avatars are, instead of via an img tag that would render nothing.

Restoring the model ID to each card also makes the section subtitle true again,
so it goes back to telling readers to pass the ID as their model parameter.
@sabrinaaquino sabrinaaquino changed the title docs: tighten landing page copy docs: refresh landing page copy and generate Popular models from the catalog Aug 5, 2026
The hero now states the full surface in one line rather than splitting the
models claim and the modality list across the tagline and subtitle. The
subtitle keeps the tool surface, which nothing else above the fold covers.

Moving "behind one API key" into the tagline meant the Endpoints subtitle was
repeating it, so that subtitle switches to what is actually shared across
modalities: auth, error codes, and rate limit headers.
The banner claimed 250+ models while the catalog held 293 live ones, and any
hand-picked replacement would drift the same way. The count now comes from the
same snapshot as the cards, rounded down to the nearest 10 so the claim is
always true rather than aspirational. That puts the banner at "290+ models"
today, and it promotes itself to "300+" once the catalog gets there without
anyone editing the page.

Mintlify renders frontmatter `description` as a visible subtitle under the H1,
not just as metadata, so tightening it to match the hero put the same sentence
on screen twice. The page now carries og:description instead, which keeps the
social card text without repeating the hero. Search engines will build the
snippet from the hero line, which says the same thing.
Restores the visible subtitle, and with it the meta description, but pointed at
what the page is for rather than repeating the hero's product claim. og:description
keeps the claim for social cards.
The three Agents cards described categories rather than products and all
pointed at anchors on the AI Agents hub. Split them into agent apps, coding
agents, and MCP and skills, with one card per integration linking straight
to its own guide.

Each card carries the project's own brand logo. Marks that ship as single
colour artwork get flipped in dark mode via an is-mono class, so the
monochrome and full colour logos both read on either theme.

Also folds the section eyebrow labels into the headings, drops the hero
subtitle, and renames the Search and RAG section to Tools.
@sabrinaaquino
sabrinaaquino merged commit 86db8e5 into main Aug 5, 2026
3 checks passed
@sabrinaaquino
sabrinaaquino deleted the docs/landing-copy-polish branch August 5, 2026 01:11

This branch was successfully deployed

1 active deployment
staging — d6a5ccbf Deployed Aug 5, 2026 by mintlify[bot]
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