Preview
Live preview (the design prototype): https://classifier-signal-review.vercel.app/?_vercel_share=NWvJuM66rbgnynoasWrlhi5ykzL6KBAH
That link opens without a Vercel login. It's the prototype the branch was built from, not this Worker, but the pages and behaviour match. Add &scheme=dark for dark mode.
The screenshots below are from this branch running locally on the Worker.
| Home | Home, dark |
|---|---|
| Use cases | Pricing |
|---|---|
| Developers (docs) | Benchmark |
|---|---|
| About | Chat (/chat) |
|---|---|
What this does
Redesigns every page a browser sees. curl, agents, crawlers and unfurlers get what they got before, from the same routes. There's one deliberate exception, the heading fix in decision 5.
- Home page (
/, also/chat): the new design. Prices, plan allowances, seats, rate limits, the Smart threshold and input limits are filled from the same constants the API uses, via<data value>elements (src/site/home.ts). The setup prompt isAGENT_PROMPT. The benchmark figures are checked against/benchmarkandvs-jev.jsonby a test. - Docs pages (
/developers,/mcp-setup,/privacy,/terms): your plain-text documents, rendered in the new docs layout (src/site/doc.ts). UPPERCASE headings become sections, aligned columns become tables, and commands and code become copyable blocks marked by language. Nothing is retyped, so the HTML can't drift from the text or the Markdown. - About and Contact: the same text, one row per section, with the links it mentions shown as buttons.
- Benchmark: charts from
vs-jev.jsonand theBENCHMARKtables. The other tables are rendered as tables. - Pricing: plans, usage rates, rate limits per plan and Enterprise, filled from the constants. The fine print below them is the
PRICINGtext, section by section. - Chat: a bubble at the bottom right of every page. It opens a panel that uses the same
/v1/chatstream as the old panel./chatopens it on the home page. - Updates sign-up: an email field in the footer, one click. A toast then offers the roadmap items as optional chips. It posts to
/subscribeas before, and the confirmation pages use the new shell.
The design's static files live in public/site/ and are served by Workers static assets at /site/. They're generated from the design prototype by its tools/port.py.
Decisions for you
- Content-Security-Policy. The redesigned pages load their own scripts, stylesheets, fonts and media, so they get their own policy (
sitePolicy). It allows those only from{origin}/site/, with inline scripts by hash as before and nothing third-party. Your existing pages' policy is unchanged. - About 3.5 MB of static files in
public/site/: fonts, example media, sky photographs, the plant model (packed to 261 KB), scripts and styles (minified). Fonts, images and media are cached for a week (public/_headers). - The home page no longer repeats the full docs in HTML. The docs are still the plain-text response at
/and/index.md. The HTML names/index.mdas its Markdown alternate and links it from the footer. One test changed to check that instead of heading parity for/. - Sign-ups are sent when the interests toast closes, so the roadmap picks can go into the confirmation email. That happens on Done, on close, after 9 seconds, or when the page is left. Sending at the click would need a way to add picks to a pending sign-up.
isHeadingaccepts a lowercase aside in brackets.ESCALATION (the smart tier)was being folded intoCALIBRATION. It's now its own section, which agents see:/benchmark.mdgains that heading,/v1/docsgets abenchmark/escalation-the-smart-tiersection, and the docs MCP server (src/mcp.ts) now splits on the same rule.- Privacy text updated (
src/pages.ts). The public pages no longer load a highlighter from cdnjs, and there's no updates-bar flag any more. It also now says the chat keeps the conversation in the tab's session storage. Please check the wording, since it's a legal page. - About says pricing costs "nothing", which is no longer true now that there are paid plans. The redesigned page renders your text as is, so that line needs a copy fix in
ABOUT. - Image, audio and video example answers on the home page are illustrative, and labelled "example scores", because Jev-Omni was unavailable when I tried to record them. The prototype has a one-command recorder for when it's back.
Not in this PR
- The skills directory (
/skills), which keeps its current page. /loginand the/appdashboard.
Tests
npm run typecheck and npx bun test pass: 870 tests. The new tests are tests/site-home.test.ts and tests/site-pages.test.ts. The existing tests I edited assert the new markup (code block copy buttons, link rendering, no CDN highlighter, one sign-up form). Each edit has a comment saying why.
🤖 Generated with Claude Code
Summary by CodeRabbit
- New Features
- Redesigned the website, including its home, pricing, documentation, benchmark, and company pages, with responsive layouts and light/dark themes.
- Added interactive classification demonstrations for text, files, images, audio, and video, with example datasets and detailed results.
- Added an on-page chat experience with suggested prompts, streamed responses, and conversation history for the current tab.
- Improved documentation browsing with search, navigation, tables of contents, tabs, and copyable code.
- Added interactive use-case demonstrations and support for installing the site as a web app.