Groq
Free, fast, and recommended for new users.
Groq is a free AI inference service that runs open-weights models (Llama, Mixtral, Gemma) on custom hardware. It's the fastest option in ContentAI and the one we recommend you start with.
Why Groq?
- Free — no credit card required at signup
- Fast — often 2–5× faster than paid APIs
- Generous limits — plenty of room for real usage, not just testing
- Good models — Llama 3.3 70B Versatile is competitive with GPT-4o-mini for most writing tasks
Get a key
- Go to console.groq.com/keys
- Sign in with GitHub or Google
- Click Create API Key
- Name it (e.g. "ContentAI") and copy the key — starts with
gsk_
Models available in ContentAI
| Model | Context | Good for |
|---|---|---|
llama-3.3-70b-versatile | 128k | ⭐ Best overall — our default |
llama-3.1-8b-instant | 128k | Shortest outputs, bulk runs |
mixtral-8x7b-32768 | 32k | Coding, structured JSON |
gemma2-9b-it | 8k | Simple rewrites |
See the live catalog at console.groq.com/docs/models. To expose more models to your users, edit providerModels.groq in lib/store.ts.
Rate limits
Groq's free tier as of writing:
- Requests per minute: 30 for Llama models, higher for Gemma
- Tokens per day: ~500k
- Tokens per minute: ~30k
If you hit a limit, the app surfaces a "Rate limit exceeded — wait a moment" toast. Switching to another model on Groq often works because limits are per-model.
Quality notes
- Llama 3.3 70B writes excellent blog posts and marketing copy; sometimes overly verbose on short prompts.
- Llama 3.1 8B Instant is the fastest model in the whole app. Perfect for tweets, captions, and meta descriptions.
- Mixtral is the best Groq option when you need structured output (lists, tables, JSON).
Setup in ContentAI
- Settings → Groq card → paste key
- Pick llama-3.3-70b-versatile
- Click Test → green toast
- Click Set as active provider
That's it.
Using Groq server-side (advanced)
If you want to provide a shared Groq key for all users (instead of BYOK), you can set GROQ_API_KEY in .env.local and update app/api/generate/route.ts to fall back to it when no client key is provided:
const key = body.apiKey || process.env.GROQ_API_KEY;Do this only if you also add auth and rate limiting — otherwise anyone on the internet can burn through your quota.
Next: Google Gemini →