diff --git a/.claude/commands/add-quote.md b/.claude/commands/add-quote.md new file mode 100644 index 00000000..f24d6408 --- /dev/null +++ b/.claude/commands/add-quote.md @@ -0,0 +1,49 @@ +--- +allowed-tools: Read, Edit, Write, Glob, Grep, Bash(cp *), Bash(curl *), Bash(ls *), Bash(file *), Bash(mv *), AskUserQuestion +description: Add a new supporter quote to InferenceX +--- + +Add a new supporter quote to the InferenceX quotes page. + +## Step 1: Gather quote details + +Ask the user for the following (if not already provided via $ARGUMENTS): + +1. **Quote text** — the full quote +2. **Name** — person's name +3. **Title** — person's role/title +4. **Organization** — company/org name +5. **Logo** — path to a logo file, a URL, or skip (optional) +6. **Link** — optional URL to link the quote to + +## Step 2: Add the logo (if provided) + +- Check existing logos at `packages/app/public/logos/` for naming conventions +- If a file path is provided, copy it to `packages/app/public/logos/{org-slug}.{ext}` (lowercase, hyphenated) +- If a URL is provided, download it to `packages/app/public/logos/{org-slug}.{ext}` +- Prefer SVG format. If the source is PNG/JPG, use that extension +- Verify the file was saved correctly + +## Step 3: Add the quote to quotes-data.ts + +- Read `packages/app/src/components/quotes/quotes-data.ts` +- Append the new quote entry to the `QUOTES` array (before the closing `];`) +- Include `logo: '{filename}'` if a logo was added +- Include `link: '{url}'` if a link was provided +- Use `\u2122` for the trademark symbol (™) and `\u2014` for em dashes if needed in the quote text + +## Step 4: Ask about the quote carousel + +Ask the user: + +> **Should this quote appear in the homepage quote carousel?** +> (Currently the carousel uses a whitelist — only explicitly listed orgs are shown) + +- If **yes**: add the org name to the whitelist array in `packages/app/src/components/page-content.tsx` (search for the `QUOTES.filter` call with `.includes(q.org)`) +- If **no**: do nothing — the quote will only appear on the `/quotes` supporters page + +## Step 5: Verify + +- Confirm the quote was added to `quotes-data.ts` +- If carousel was updated, confirm the org is in the whitelist +- If a logo was added, confirm the file exists in `packages/app/public/logos/` diff --git a/packages/app/public/logos/baseten.svg b/packages/app/public/logos/baseten.svg new file mode 100644 index 00000000..b14a5f79 --- /dev/null +++ b/packages/app/public/logos/baseten.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/app/src/components/page-content.tsx b/packages/app/src/components/page-content.tsx index fde1f1ef..3d1ad74d 100644 --- a/packages/app/src/components/page-content.tsx +++ b/packages/app/src/components/page-content.tsx @@ -266,11 +266,11 @@ export function PageContent({ initialTab = 'inference' }: { initialTab?: string built for the benchmark itself which do not reflect real world performance

- InferenceX (formerly InferenceMAX) is our independent, - reproducible benchmark which addresses these issues by continously benchmarking - inference software across an wide range of AI accelerators that is acutally - available to the the ML community. We continously update the benchmarks to capture - the speed of progress. + InferenceX (formerly InferenceMAX) is our independent, vendor + neutral, reproducible benchmark which addresses these issues by continously + benchmarking inference software across an wide range of AI accelerators that is + acutally available to the the ML community. We continously update the benchmarks + to capture the speed of progress.

Our open data & insights is widely adopted by the ML community, capacity planning @@ -297,18 +297,21 @@ export function PageContent({ initialTab = 'inference' }: { initialTab?: string

- ![ - 'NVIDIA', - 'AMD', - 'Supermicro', - 'Vultr', - 'Prime Intellect', - 'DatologyAI', - 'Stas Bekman', - 'Firmus', - ].includes(q.org), + quotes={QUOTES.filter((q) => + [ + 'OpenAI', + 'Microsoft', + 'Together AI', + 'vLLM', + 'GPU Mode', + 'PyTorch Foundation', + 'Oracle', + 'CoreWeave', + 'Nebius', + 'Crusoe', + 'TensorWave', + 'SGLang', + ].includes(q.org), )} overrides={{ order: ['OpenAI'], diff --git a/packages/app/src/components/quotes/quotes-data.ts b/packages/app/src/components/quotes/quotes-data.ts index 047cdf34..1f24a6c9 100644 --- a/packages/app/src/components/quotes/quotes-data.ts +++ b/packages/app/src/components/quotes/quotes-data.ts @@ -197,4 +197,11 @@ export const QUOTES: Quote[] = [ org: 'Adaptive ML', logo: 'adaptive-ml.svg', }, + { + text: "Our customers ship AI to production using frontier open-source models \u2014 and at scale, every token per second and every dollar per million tokens matters. InferenceX\u2122 gives the ecosystem something we've always needed: an objective, open benchmark that tracks real inference performance continuously across hardware such as GB300 NVL72, GB200 NVL72, H100 & soon Rubin & TPU & Trainium. Very helpful in allowing the wider community to understand the landscape and creating a clear taxonomy around performance.", + name: 'Alex Ker', + title: 'Engineer, Baseten', + org: 'Baseten', + logo: 'baseten.svg', + }, ];