docs: refresh landing page copy and generate Popular models from the catalog - #389
Merged
Merged
Conversation
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.
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
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.
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.
3 tasks
This branch was successfully deployed
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
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
descriptionto match, keeping "OpenAI-compatible" in there since it is a high-intent search term for developers evaluating a switch.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-statsdivs when it stripped the inlined model data.scripts/generate-popular-models.jsnow renders the grid fromdata/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 intoupdate-static-models.jsahead of the pricing generator, which callsprocess.exit(0)when it has nothing to write, andsync-static-models.ymlnow stagesoverview/about-venice.mdxalongside the other generated files.Currently featured:
kimi-k3,claude-fable-5,zai-org-glm-5-2.A few decisions worth reviewing:
created" would surface things likedeepseek-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.images/icons/modelsare authored withfill="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)..venice-model-card-privacyis green, which would have implied Claude Fable 5 is as private as the others.modelparameter./overview/modelslinks now point straight at/models/overviewinstead of bouncing through thedocs.jsonredirect. The redirect stays for inbound external links.Notes
Scoped to the English page. Translated copies under
ar/,de/,es/,fr/,it/,ko/,pt-BR/, andzh/are handled by the separate "translate across 8 locales" PRs, matching how #375 and #373 were done.Test plan
node scripts/generate-popular-models.jsproduces the expected cards and is idempotent on a second runoverview/about-venice.mdxcompiles under@mdx-js/mdxmintlify devand eyeball the Popular models grid in light and dark mode, confirming the three logos renderSync static model snapshotrun leaves the landing page untouched when the catalog has not moved