File size: 19,836 Bytes
a8898de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 | /* ============================================================
partners.ts — per-partner content for the reusable template.
Sourced from partner-resources.md. The template flexes on:
type (models|infra), optional prize, optional starter space,
variable models / capabilities / resources / support channels.
NOTE: OpenBMB's hosted API bearer token from partner-resources.md
is deliberately NOT included here — it is a shared secret and must
not ship in a public, static frontend.
============================================================ */
export type PartnerModel = {
name: string;
size?: number; // params in B; omit when not publicly stated
tags: string[];
desc: string;
url?: string;
};
export type PartnerCapability = {
name: string;
glyph: string;
desc: string;
};
export type ResourceKind = 'docs' | 'cookbook' | 'guide' | 'models' | 'code' | 'space';
export type PartnerData = {
id: string;
name: string;
accent: string;
url?: string;
sizeRange: string;
type: 'models' | 'infra';
tagline: string;
offer: string;
models?: PartnerModel[];
capabilities?: PartnerCapability[];
guide?: { want: string; use: string; note: string }[];
resources?: { label: string; kind: ResourceKind; url: string }[];
starterSpace?: { name: string; desc: string; url: string } | null;
links?: Partial<Record<'website' | 'huggingface' | 'twitter' | 'github', string>>;
prize?: { title: string; award: string; criteria: string } | null;
support?: { channel: string; handle: string; glyph: string; url?: string }[];
};
export const PARTNER_DATA: Record<string, PartnerData> = {
/* ---------- RICH: many models + selection guide ---------- */
openbmb: {
id: 'openbmb',
name: 'OpenBMB',
accent: '#3d6a55',
url: 'openbmb.cn',
sizeRange: '1B – 8B',
type: 'models',
tagline:
'Tiny, capable models for text, vision, audio and omni — small enough to live on your own hardware.',
offer:
'The MiniCPM family proves you don’t need a giant to get real work done. Each model is tuned to punch far above its parameter count and runs happily on a laptop — or a phone. OpenBMB provide free hosted API access for the jam, and every model also runs locally via llama.cpp or transformers. Pick the modality you need and go.',
models: [
{ name: 'MiniCPM-V 4.6', size: 1.3, tags: ['vision', 'OCR', 'documents'], desc: 'Image & video understanding, OCR and document understanding for multimodal apps.', url: 'https://huggingface.co/openbmb/MiniCPM-V-4.6' },
{ name: 'MiniCPM-o 4.5', tags: ['omni', 'speech', 'realtime'], desc: 'Full-duplex omni model — voice, vision and language in, speech out. Real-time capable.', url: 'https://huggingface.co/openbmb/MiniCPM-o-4_5' },
{ name: 'MiniCPM-V 4.5', tags: ['vision', 'video'], desc: 'Strong multimodal understanding and visual reasoning for image & video use cases.', url: 'https://huggingface.co/openbmb/MiniCPM-V-4_5' },
{ name: 'MiniCPM5-1B', size: 1, tags: ['text', 'on-device'], desc: 'Lightweight text generation for local-first and on-device assistants.', url: 'https://huggingface.co/openbmb/MiniCPM5-1B' },
{ name: 'MiniCPM4.1-8B', size: 8, tags: ['text', 'reasoning'], desc: 'Text reasoning with efficient, hybrid local inference.', url: 'https://huggingface.co/openbmb/MiniCPM4.1-8B' },
{ name: 'VoxCPM2', tags: ['TTS', 'voice'], desc: 'Text-to-speech and creative voice design for voice-enabled apps.', url: 'https://huggingface.co/openbmb/VoxCPM2' }
],
guide: [
{ want: 'Image understanding, OCR or documents', use: 'MiniCPM-V 4.6', note: 'Vision + OCR' },
{ want: 'A video-understanding demo', use: 'MiniCPM-V 4.6 / 4.5', note: 'Multimodal video' },
{ want: 'An omni or voice + vision assistant', use: 'MiniCPM-o 4.5', note: 'Speech in, speech out' },
{ want: 'A lightweight, local-first text app', use: 'MiniCPM5-1B', note: '1B, on-device' },
{ want: 'Text reasoning / problem-solving', use: 'MiniCPM4.1-8B', note: 'Best reasoning' },
{ want: 'TTS or a creative voice experience', use: 'VoxCPM2', note: 'Voice generation' }
],
resources: [
{ label: 'OpenBMB model collection', kind: 'models', url: 'https://huggingface.co/openbmb/collections' },
{ label: 'MiniCPM-V Cookbook (GitHub)', kind: 'cookbook', url: 'https://github.com/OpenSQZ/MiniCPM-V-CookBook' },
{ label: 'Cookbook (web)', kind: 'guide', url: 'https://opensqz.github.io/MiniCPM-V-CookBook/site/en/index.html' },
{ label: 'GitHub repository', kind: 'code', url: 'https://github.com/OpenBMB' }
],
//
starterSpace: { name: 'MiniCPM-V-4.6 Demo', desc: 'Fork this Gradio Server Space to start from a working MiniCPM-V-4.6 app.', url: 'https://huggingface.co/spaces/openbmb/MiniCPM-V-4.6-Demo' },
links: {
website: 'https://www.openbmb.cn/en/home',
huggingface: 'https://huggingface.co/openbmb',
twitter: 'https://x.com/OpenBMB',
github: 'https://github.com/OpenBMB'
},
prize: { title: 'Best MiniCPM Build', award: '$10,000', criteria: 'Build with MiniCPM models. The pool is split $5k per track (1st $2,500 · 2nd $1,500 · 3rd $1,000).' },
support: [
{ channel: 'Discord', handle: '@tc_mb', glyph: 'chat' },
{ channel: 'Discord', handle: '@yangzhizheng', glyph: 'chat' },
{ channel: 'Discord', handle: '@zzhonglol2_50531', glyph: 'chat' }
]
},
/* ---------- LIGHT: image models ---------- */
blackforest: {
id: 'blackforest',
name: 'Black Forest Labs',
accent: '#5a4b73',
url: 'docs.bfl.ai',
sizeRange: '4B – 9B',
type: 'models',
tagline: 'FLUX.2 Klein — open text-to-image and precise image editing at 4B and 9B.',
offer:
'FLUX.2 Klein brings high-quality text-to-image generation and precise image editing to models small enough to run yourself. Base and distilled versions ship at 4B and 9B, Apache 2.0 licensed, with a starter Space and a LoRA training toolkit ready to go.',
models: [
{ name: 'FLUX.2 Klein base 4B', size: 4, tags: ['text-to-image', 'Apache 2.0'], desc: 'Base text-to-image and image editing model.', url: 'https://docs.bfl.ai' },
{ name: 'FLUX.2 Klein distilled 9B', size: 9, tags: ['text-to-image', 'distilled'], desc: 'Distilled variant for higher fidelity generation and editing.', url: 'https://docs.bfl.ai' }
],
guide: [
{ want: 'Generate images from text', use: 'FLUX.2 Klein base 4B', note: 'Text-to-image' },
{ want: 'Edit or refine existing images', use: 'FLUX.2 Klein', note: 'Image editing' },
{ want: 'Train a LoRA or custom style', use: 'Klein + ai-toolkit', note: 'Fine-tuning' }
],
resources: [
{ label: 'Documentation', kind: 'docs', url: 'https://docs.bfl.ai' },
{ label: 'Klein LoRA guide', kind: 'guide', url: 'https://hf.co/blog/black-forest-labs/flux-2-klein-lora' },
{ label: 'ai-toolkit trainer', kind: 'code', url: 'https://github.com/ostris/ai-toolkit' }
],
starterSpace: { name: 'Klein Build Small Starter', desc: 'Fork this Gradio Space to start from a working FLUX.2 Klein app.', url: 'https://hf.co/spaces/stephenbtl/klein-build-small-starter' },
links: {
website: 'https://bfl.ai',
huggingface: 'https://huggingface.co/black-forest-labs',
twitter: 'https://x.com/bfl_ai',
github: 'https://github.com/black-forest-labs'
},
prize: null,
support: [{ channel: 'Discord', handle: '@stephen.btl', glyph: 'chat' }]
},
/* ---------- INFRA: coding agent capabilities ---------- */
openai: {
id: 'openai',
name: 'OpenAI · Codex',
accent: '#1f7a6b',
sizeRange: 'coding agent',
type: 'infra',
tagline: 'The Codex coding agent (GPT-5.5) with a built-in plugin ecosystem.',
offer:
'Codex is a powerful coding agent built on GPT-5.5, with ecosystem plugins for GitHub, Figma and Hugging Face, SSH connectivity to VMs, in-app UI browser checks, and a new automatic “Goal Mode” that can carry out multi-hour developer tasks unprompted.',
capabilities: [
{ name: 'Codex agent', glyph: 'code', desc: 'A GPT-5.5 coding agent that writes, refactors and reviews across your repo.' },
{ name: 'Ecosystem plugins', glyph: 'grid', desc: 'GitHub, Figma and Hugging Face integrations built in.' },
{ name: 'SSH to VMs', glyph: 'server', desc: 'Connect to remote VMs over SSH to run real work.' },
{ name: 'UI browser checks', glyph: 'globe', desc: 'In-app browser checks to verify the UI it builds.' },
{ name: 'Goal Mode', glyph: 'flag', desc: 'Automatic multi-hour developer tasks, carried out unprompted.' }
],
resources: [],
starterSpace: null,
links: {
website: 'https://openai.com/codex/',
huggingface: 'https://huggingface.co/openai',
twitter: 'https://x.com/OpenAI',
github: 'https://github.com/openai/codex'
},
prize: { title: 'Best Use of Codex', award: '$10,000', criteria: 'Codex-attributed commits in your connected GitHub repo or Space. Using Codex holistically — fine-tuning, complex agents — ranks higher.' },
support: []
},
/* ---------- RICH: Nemotron model suite ---------- */
nvidia: {
id: 'nvidia',
name: 'NVIDIA',
accent: '#4d7a2e',
sizeRange: '< 1B – 30B MoE',
type: 'models',
tagline: 'The Nemotron 3 family — efficient open models for reasoning, multimodal, speech and document AI.',
offer:
'NVIDIA’s Nemotron 3 family spans tiny edge models to MoE reasoning models — all efficient, open, and built to run on hardware you can actually get. Mix and match across reasoning, multimodal, speech and document extraction.',
models: [
{ name: 'Nemotron 3 Nano', size: 30, tags: ['MoE', 'reasoning'], desc: '30B total · 3B active MoE — efficient reasoning for long-running agents.', url: 'https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16' },
{ name: 'Nemotron 3 Nano 4B', size: 4, tags: ['edge', 'text'], desc: 'Edge-optimised 4B model for constrained hardware.', url: 'https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-4B-BF16' },
{ name: 'Nemotron 3 Nano Omni', tags: ['omni', 'multimodal'], desc: 'Multimodal nano model across modalities.', url: 'https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16' },
{ name: 'Nemotron 3 ASR', tags: ['speech', 'ASR'], desc: 'Speech recognition built for real-time use.', url: 'https://huggingface.co/nvidia/nemotron-speech-streaming-en-0.6b' },
{ name: 'Nemotron Parse', size: 1, tags: ['documents', 'extraction'], desc: 'Sub-1B parameter document extraction.', url: 'https://huggingface.co/nvidia/NVIDIA-Nemotron-Parse-v1.2' },
{ name: 'Nemotron Embed VL', tags: ['embeddings', 'vision'], desc: 'Vision-language embeddings for retrieval & search.', url: 'https://huggingface.co/nvidia/llama-nemotron-embed-vl-1b-v2' }
],
guide: [
{ want: 'A long-running agent / reasoning app', use: 'Nemotron 3 Nano', note: '3B active MoE' },
{ want: 'To run on the edge', use: 'Nemotron 3 Nano 4B', note: 'Edge-ready' },
{ want: 'A multimodal app', use: 'Nemotron 3 Nano Omni', note: 'Omni-modal' },
{ want: 'Speech recognition', use: 'Nemotron 3 ASR', note: 'Real-time ASR' },
{ want: 'Document extraction', use: 'Nemotron Parse', note: '< 1B params' }
],
resources: [
{ label: 'Nemotron 3 Nano usage guide', kind: 'code', url: 'https://github.com/NVIDIA-NeMo/Nemotron/tree/main/use-case-examples/Simple%20Nemotron-3-Nano%20Usage%20Example' },
{ label: 'Nemotron 3 Ultra blog', kind: 'guide', url: 'https://developer.nvidia.com/blog/nvidia-nemotron-3-ultra-powers-faster-more-efficient-reasoning-for-long-running-agents/' },
{ label: "Introducing NVIDIA Nemotron 3 Nano Omni", kind: "guide", url: "https://huggingface.co/blog/nvidia/nemotron-3-nano-omni-multimodal-intelligence" },
{ label: 'NVIDIA Nemotron collections', kind: 'models', url: 'https://huggingface.co/nvidia/collections' },
],
starterSpace: {name: 'Nemotron-3 Nano Omni demo', desc: 'Fork this Gradio Server Space to start from a working Nemotron-3 Nano Omni app.', url: "https://huggingface.co/spaces/akhaliq/Nemotron-3-Nano-Omni"},
links: {
website: 'https://developer.nvidia.com/nemotron',
huggingface: 'https://huggingface.co/nvidia',
twitter: 'https://x.com/NVIDIAAIDev',
github: 'https://github.com/NVIDIA-NeMo/Nemotron'
},
prize: { title: 'Nemotron Hardware Prize', award: '2× RTX 5080', criteria: 'Build with Nemotron models. Awarded for best Space (judged) and community engagement.' },
support: []
},
/* ---------- INFRA: serverless compute ---------- */
modal: {
id: 'modal',
name: 'Modal',
accent: '#2f6f8f',
url: 'modal.com',
sizeRange: 'serverless compute',
type: 'infra',
tagline: 'Serverless GPUs for inference, training, batch jobs and sandboxes — from a few lines of Python.',
offer:
'Not a model — the workshop floor your models run on. Modal gives you on-demand GPUs without managing infrastructure: define a function, attach a GPU, and it scales from zero to many and back. Ideal for fast inference, fine-tuning scripts in ~300 lines, parallel hyperparameter sweeps, and running agents in sandboxes.',
capabilities: [
{ name: 'Inference', glyph: 'bolt', desc: 'Deploy and scale inference for LLMs, audio and image/video generation.' },
{ name: 'Training', glyph: 'cube', desc: 'Fine-tune open-source models on single or multi-node clusters instantly.' },
{ name: 'Batch', glyph: 'grid', desc: 'Parallelize massive jobs with hyper-elastic compute infrastructure.' },
{ name: 'Sandboxes', glyph: 'server', desc: 'Programmatically scale ephemeral environments for running untrusted code.' }
],
guide: [
{ want: 'Serve your model as an API', use: 'Inference endpoints', note: 'Autoscaling' },
{ want: 'Fine-tune a small model', use: 'Training', note: 'Pay-per-second GPUs' },
{ want: 'Run an agent’s code safely', use: 'Sandboxes', note: 'Isolated containers' },
{ want: 'Massive parallel jobs', use: 'Batch', note: 'Hyper-elastic' }
],
resources: [{ label: 'Documentation', kind: 'docs', url: 'https://modal.com/docs' }],
starterSpace: null,
links: {
website: 'https://modal.com',
huggingface: 'https://huggingface.co/modal-labs',
twitter: 'https://x.com/modal',
github: 'https://github.com/modal-labs'
},
prize: { title: 'Best Use of Modal', award: '20,000 credits', criteria: 'Use Modal for the development or runtime of your app and note it in your Space README. 1st 10,000 · 2nd 7,000 · 3rd 3,000 credits.' },
support: [
{ channel: 'Community Slack', handle: 'modal.com/slack', glyph: 'link', url: 'https://modal.com/slack' },
{ channel: 'Discord', handle: '@felicia_modal', glyph: 'chat' }
]
},
/* ---------- LIGHT: coding models ---------- */
jetbrains: {
id: 'jetbrains',
name: 'JetBrains',
accent: '#b0453d',
sizeRange: '12B MoE',
type: 'models',
tagline: 'Mellum 2 — open 12B MoE coding models, in Thinking and Instruct flavours.',
offer:
'Mellum 2 is JetBrains’ family of open-source language models built for coding and language tasks. Optimised for low-latency, high-throughput inference, Apache 2.0 licensed, and deployable locally or in the cloud — for coding assistants, RAG apps, code analysis and developer tools.',
models: [
{ name: 'Mellum 2 Thinking', size: 12, tags: ['coding', 'reasoning'], desc: 'Reasoning-heavy configuration for harder problems.', url: 'https://huggingface.co/JetBrains/Mellum2-12B-A2.5B-Thinking-GGUF-Q4_K_M' },
{ name: 'Mellum 2 Instruct', size: 12, tags: ['coding', 'low-latency'], desc: 'Blazingly fast instruct configuration for high-throughput use.', url: 'https://huggingface.co/collections/JetBrains/mellum2-gguf' }
],
guide: [
{ want: 'An AI coding assistant', use: 'Mellum 2 Instruct', note: 'Low-latency' },
{ want: 'Reasoning-heavy code tasks', use: 'Mellum 2 Thinking', note: 'Deeper reasoning' },
{ want: 'RAG or code-analysis tools', use: 'Mellum 2', note: 'Apache 2.0' }
],
resources: [
{ label: 'Mellum 2 GGUF collection', kind: 'models', url: 'https://huggingface.co/collections/JetBrains/mellum2-gguf' },
{ label: 'Quickstart', kind: 'guide', url: 'https://huggingface.co/JetBrains/Mellum2-12B-A2.5B-Thinking-GGUF-Q4_K_M' }
],
starterSpace: null,
links: {
website: 'https://www.jetbrains.com/ai/',
huggingface: 'https://huggingface.co/JetBrains',
twitter: 'https://x.com/jetbrains',
github: 'https://github.com/JetBrains'
},
prize: null,
support: [
{ channel: 'Discord', handle: '@nikitapavlichenko', glyph: 'chat' },
{ channel: 'Discord', handle: '@vano006503', glyph: 'chat' },
{ channel: 'Discord', handle: '@aral_dm', glyph: 'chat' }
]
},
/* ---------- RICH: ASR + multilingual ---------- */
cohere: {
id: 'cohere',
name: 'Cohere Labs',
accent: '#9c5a2b',
sizeRange: '2B – 3.3B',
type: 'models',
tagline: 'Cohere Transcribe (ASR) and the Tiny Aya multilingual family — small models for real people.',
offer:
'Cohere Transcribe is a 2B fast ASR model covering 14 languages. The Tiny Aya 3.3B series targets distinct geographical language families and low-resource languages — a great fit for local multilingual assistants, voice interfaces, accessibility tools and offline translation.',
models: [
{ name: 'Cohere Transcribe', size: 2, tags: ['ASR', '14 languages'], desc: 'Fast 2B speech recognition across 14 languages.', url: 'https://huggingface.co/CohereLabs/cohere-transcribe-03-2026' },
{ name: 'Tiny Aya Global', size: 3.3, tags: ['multilingual', 'balanced'], desc: 'Best balance across languages and regions.', url: 'https://huggingface.co/CohereLabs/tiny-aya-global-GGUF' },
{ name: 'Tiny Aya Water', size: 3.3, tags: ['European', 'Asia-Pacific'], desc: 'Tuned for European and Asia-Pacific languages.', url: 'https://huggingface.co/CohereLabs/tiny-aya-water-GGUF' },
{ name: 'Tiny Aya Fire', size: 3.3, tags: ['South Asian'], desc: 'Tuned for South Asian languages.', url: 'https://huggingface.co/CohereLabs/tiny-aya-fire-GGUF' },
{ name: 'Tiny Aya Earth', size: 3.3, tags: ['West Asian', 'African'], desc: 'Tuned for West Asian and African languages.', url: 'https://huggingface.co/CohereLabs/tiny-aya-earth-GGUF' }
],
guide: [
{ want: 'Speech recognition', use: 'Cohere Transcribe', note: '14 languages' },
{ want: 'A balanced multilingual assistant', use: 'Tiny Aya Global', note: 'All regions' },
{ want: 'European / Asia-Pacific languages', use: 'Tiny Aya Water', note: 'Regional' },
{ want: 'South Asian languages', use: 'Tiny Aya Fire', note: 'Regional' },
{ want: 'West Asian / African languages', use: 'Tiny Aya Earth', note: 'Regional' }
],
resources: [
{ label: 'Cohere Transcribe release blog', kind: 'guide', url: 'https://huggingface.co/blog/CohereLabs/cohere-transcribe-03-2026-release' },
{ label: 'Build Small with Cohere — full guide', kind: 'cookbook', url: 'https://huggingface.co/blog/CohereLabs/build-small-hackathon-with-cohere-models' },
{ label: 'Cohere Tiny Aya collection', kind: 'models', url: 'https://huggingface.co/collections/CohereLabs/tiny-aya' },
],
starterSpace: { name: 'Tiny Aya Sample Space', desc: 'Fork this Gradio Space to start from a working Tiny Aya app.', url: 'https://huggingface.co/spaces/ysharma/tiny-aya-build-small-sample' },
links: {
website: 'https://cohere.com/research',
huggingface: 'https://huggingface.co/CohereLabs',
twitter: 'https://x.com/cohere_labs',
github: 'https://github.com/Cohere-Labs'
},
prize: null,
support: [
{ channel: 'Discord', handle: '@madeline_smith', glyph: 'chat' },
{ channel: 'Discord', handle: '@alejandro_81346', glyph: 'chat' },
{ channel: 'Discord', handle: '@julianmack_43074', glyph: 'chat' }
]
}
};
export const RESOURCE_GLYPH: Record<string, string> = {
docs: 'doc',
cookbook: 'book',
guide: 'compass',
models: 'cube',
code: 'code',
space: 'play'
};
export const PARTNER_SLUGS = Object.keys(PARTNER_DATA);
|