field-guide / src /lib /data /partners.ts
pngwn
fix
a8898de
/* ============================================================
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);