|
2 | 2 | { |
3 | 3 | "id": "code-editor", |
4 | 4 | "name": "Where do you write code?", |
5 | | - "description": "Your primary coding environment \u2014 the IDE where you spend most of your time", |
| 5 | + "description": "Your primary coding environment — the IDE where you spend most of your time", |
6 | 6 | "tools": [ |
7 | 7 | "cursor", |
8 | 8 | "windsurf", |
|
13 | 13 | "supermaven", |
14 | 14 | "aide", |
15 | 15 | "replit-ghostwriter", |
16 | | - "jetbrains-ai" |
| 16 | + "jetbrains-ai", |
| 17 | + "gemini-code-assist", |
| 18 | + "amazon-q-developer", |
| 19 | + "augment-code" |
17 | 20 | ], |
18 | 21 | "priority": { |
19 | 22 | "dev-productivity": "required", |
20 | 23 | "app-infrastructure": "not-applicable", |
21 | 24 | "hybrid": "optional" |
22 | 25 | }, |
23 | 26 | "suggest": "cursor", |
24 | | - "suggest_reason": "The default AI-first editor \u2014 AI pair programming built in from day one" |
| 27 | + "suggest_reason": "The default AI-first editor — AI pair programming built in from day one" |
25 | 28 | }, |
26 | 29 | { |
27 | 30 | "id": "cli-agent", |
28 | 31 | "name": "Who runs your terminal tasks?", |
29 | 32 | "description": "A CLI agent you direct to handle multi-step coding tasks autonomously", |
30 | | - "tools": ["claude-code", "aider", "plandex", "goose", "cline", "amp", "codex-cli", "kodu-ai"], |
| 33 | + "tools": [ |
| 34 | + "claude-code", |
| 35 | + "aider", |
| 36 | + "plandex", |
| 37 | + "goose", |
| 38 | + "cline", |
| 39 | + "amp", |
| 40 | + "codex-cli", |
| 41 | + "kodu-ai", |
| 42 | + "gemini-cli" |
| 43 | + ], |
31 | 44 | "priority": { |
32 | 45 | "dev-productivity": "recommended", |
33 | 46 | "app-infrastructure": "not-applicable", |
|
39 | 52 | { |
40 | 53 | "id": "swe-agent", |
41 | 54 | "name": "Who builds autonomously for you?", |
42 | | - "description": "A fully autonomous agent you assign tasks to \u2014 it handles entire features or PRs", |
| 55 | + "description": "A fully autonomous agent you assign tasks to — it handles entire features or PRs", |
43 | 56 | "tools": [ |
44 | 57 | "devin", |
45 | 58 | "openhands", |
|
49 | 62 | "gpt-pilot", |
50 | 63 | "factory-ai", |
51 | 64 | "github-copilot-workspace", |
52 | | - "replit-agent" |
| 65 | + "replit-agent", |
| 66 | + "jules", |
| 67 | + "codegen" |
53 | 68 | ], |
54 | 69 | "priority": { |
55 | 70 | "dev-productivity": "optional", |
|
77 | 92 | "julep", |
78 | 93 | "letta", |
79 | 94 | "bee-agent", |
80 | | - "controlflow" |
| 95 | + "controlflow", |
| 96 | + "strands-agents" |
81 | 97 | ], |
82 | 98 | "priority": { |
83 | 99 | "dev-productivity": "not-applicable", |
84 | 100 | "app-infrastructure": "recommended", |
85 | 101 | "hybrid": "recommended" |
86 | 102 | }, |
87 | 103 | "suggest": "langgraph", |
88 | | - "suggest_reason": "Production-grade state machine \u2014 the right foundation for complex agents" |
| 104 | + "suggest_reason": "Production-grade state machine — the right foundation for complex agents" |
89 | 105 | }, |
90 | 106 | { |
91 | 107 | "id": "orchestration", |
|
103 | 119 | "vercel-ai-sdk", |
104 | 120 | "griptape", |
105 | 121 | "rivet", |
106 | | - "taskweaver" |
| 122 | + "taskweaver", |
| 123 | + "ragflow", |
| 124 | + "lightrag" |
107 | 125 | ], |
108 | 126 | "priority": { |
109 | 127 | "dev-productivity": "not-applicable", |
110 | 128 | "app-infrastructure": "optional", |
111 | 129 | "hybrid": "optional" |
112 | 130 | }, |
113 | 131 | "suggest": "vercel-ai-sdk", |
114 | | - "suggest_reason": "Lightweight and easy to start \u2014 integrates with any model provider" |
| 132 | + "suggest_reason": "Lightweight and easy to start — integrates with any model provider" |
115 | 133 | }, |
116 | 134 | { |
117 | 135 | "id": "model-router", |
118 | 136 | "name": "Which models does your stack route through?", |
119 | | - "description": "A gateway that normalizes calls across providers \u2014 one API for all models, with fallbacks", |
120 | | - "tools": ["litellm", "openrouter", "portkey", "unify-ai", "martian", "not-diamond"], |
| 137 | + "description": "A gateway that normalizes calls across providers — one API for all models, with fallbacks", |
| 138 | + "tools": [ |
| 139 | + "litellm", |
| 140 | + "openrouter", |
| 141 | + "portkey", |
| 142 | + "unify-ai", |
| 143 | + "martian", |
| 144 | + "not-diamond", |
| 145 | + "cloudflare-ai-gateway" |
| 146 | + ], |
121 | 147 | "priority": { |
122 | 148 | "dev-productivity": "not-applicable", |
123 | 149 | "app-infrastructure": "optional", |
124 | 150 | "hybrid": "optional" |
125 | 151 | }, |
126 | 152 | "suggest": "litellm", |
127 | | - "suggest_reason": "One interface for 100+ models \u2014 swap providers without rewriting your code" |
| 153 | + "suggest_reason": "One interface for 100+ models — swap providers without rewriting your code" |
128 | 154 | }, |
129 | 155 | { |
130 | 156 | "id": "inference", |
131 | 157 | "name": "Where do your models actually run?", |
132 | | - "description": "LLM providers and inference servers \u2014 where the actual model computation happens", |
| 158 | + "description": "LLM providers and inference servers — where the actual model computation happens", |
133 | 159 | "tools": [ |
134 | 160 | "ollama", |
135 | 161 | "vllm", |
|
152 | 178 | "amazon-bedrock", |
153 | 179 | "azure-openai", |
154 | 180 | "xai-grok", |
155 | | - "deepseek-api" |
| 181 | + "deepseek-api", |
| 182 | + "sambanova-cloud" |
156 | 183 | ], |
157 | 184 | "priority": { |
158 | 185 | "dev-productivity": "not-applicable", |
159 | 186 | "app-infrastructure": "required", |
160 | 187 | "hybrid": "required" |
161 | 188 | }, |
162 | 189 | "suggest": "anthropic-api", |
163 | | - "suggest_reason": "Claude powers most serious AI stacks \u2014 state of the art reasoning and coding" |
| 190 | + "suggest_reason": "Claude powers most serious AI stacks — state of the art reasoning and coding" |
164 | 191 | }, |
165 | 192 | { |
166 | 193 | "id": "vector-db", |
167 | 194 | "name": "What knowledge does your AI have?", |
168 | | - "description": "The memory layer \u2014 stores and retrieves vector embeddings for RAG and semantic search", |
| 195 | + "description": "The memory layer — stores and retrieves vector embeddings for RAG and semantic search", |
169 | 196 | "tools": [ |
170 | 197 | "qdrant", |
171 | 198 | "chroma", |
|
183 | 210 | "hybrid": "optional" |
184 | 211 | }, |
185 | 212 | "suggest": "chroma", |
186 | | - "suggest_reason": "Easiest vector DB to get started \u2014 runs locally with no infrastructure" |
| 213 | + "suggest_reason": "Easiest vector DB to get started — runs locally with no infrastructure" |
187 | 214 | }, |
188 | 215 | { |
189 | 216 | "id": "observability", |
|
200 | 227 | "logfire", |
201 | 228 | "opik", |
202 | 229 | "agentops", |
203 | | - "mlflow" |
| 230 | + "mlflow", |
| 231 | + "galileo-eval", |
| 232 | + "maxim-ai", |
| 233 | + "langwatch" |
204 | 234 | ], |
205 | 235 | "priority": { |
206 | 236 | "dev-productivity": "not-applicable", |
207 | 237 | "app-infrastructure": "recommended", |
208 | 238 | "hybrid": "recommended" |
209 | 239 | }, |
210 | 240 | "suggest": "langfuse", |
211 | | - "suggest_reason": "OSS, one line to add \u2014 you can't improve what you can't see" |
| 241 | + "suggest_reason": "OSS, one line to add — you can't improve what you can't see" |
212 | 242 | }, |
213 | 243 | { |
214 | 244 | "id": "design-to-code", |
|
225 | 255 | "framer-ai", |
226 | 256 | "uizard", |
227 | 257 | "relume", |
228 | | - "google-stitch" |
| 258 | + "google-stitch", |
| 259 | + "figma-ai" |
229 | 260 | ], |
230 | 261 | "priority": { |
231 | 262 | "dev-productivity": "optional", |
232 | 263 | "app-infrastructure": "not-applicable", |
233 | 264 | "hybrid": "optional" |
234 | 265 | }, |
235 | 266 | "suggest": "v0", |
236 | | - "suggest_reason": "Prompt \u2192 production React/Tailwind in seconds \u2014 the fastest UI starting point" |
| 267 | + "suggest_reason": "Prompt → production React/Tailwind in seconds — the fastest UI starting point" |
237 | 268 | }, |
238 | 269 | { |
239 | 270 | "id": "devops-automation", |
|
245 | 276 | "qodo", |
246 | 277 | "graphite", |
247 | 278 | "trunk", |
248 | | - "codegen", |
249 | 279 | "sourcery", |
250 | 280 | "grit-io", |
251 | 281 | "pixee", |
|
259 | 289 | "hybrid": "optional" |
260 | 290 | }, |
261 | 291 | "suggest": "coderabbit", |
262 | | - "suggest_reason": "AI code review on every PR \u2014 catches bugs and style issues before they merge" |
| 292 | + "suggest_reason": "AI code review on every PR — catches bugs and style issues before they merge" |
263 | 293 | }, |
264 | 294 | { |
265 | 295 | "id": "mcp-infra", |
|
277 | 307 | "desktop-commander", |
278 | 308 | "brave-search-mcp", |
279 | 309 | "sequential-thinking-mcp", |
280 | | - "sentry-mcp" |
| 310 | + "sentry-mcp", |
| 311 | + "browserbase-mcp" |
281 | 312 | ], |
282 | 313 | "priority": { |
283 | 314 | "dev-productivity": "optional", |
284 | 315 | "app-infrastructure": "optional", |
285 | 316 | "hybrid": "optional" |
286 | 317 | }, |
287 | 318 | "suggest": "fastmcp", |
288 | | - "suggest_reason": "Build an MCP server in minutes \u2014 the fastest way to give your agent new capabilities" |
| 319 | + "suggest_reason": "Build an MCP server in minutes — the fastest way to give your agent new capabilities" |
289 | 320 | }, |
290 | 321 | { |
291 | 322 | "id": "prompt-eval", |
|
308 | 339 | "hybrid": "optional" |
309 | 340 | }, |
310 | 341 | "suggest": "promptfoo", |
311 | | - "suggest_reason": "Catch output regressions before users do \u2014 CI-friendly and OSS" |
| 342 | + "suggest_reason": "Catch output regressions before users do — CI-friendly and OSS" |
312 | 343 | }, |
313 | 344 | { |
314 | 345 | "id": "docs", |
|
357 | 388 | { |
358 | 389 | "id": "specifications", |
359 | 390 | "name": "How do you define what you're building?", |
360 | | - "description": "Spec writing, API design, architecture diagrams, and contract-first tooling \u2014 the upstream layer before code is written", |
| 391 | + "description": "Spec writing, API design, architecture diagrams, and contract-first tooling — the upstream layer before code is written", |
361 | 392 | "tools": [ |
362 | 393 | "spec-kit", |
363 | 394 | "mermaid", |
|
384 | 415 | "id": "fine-tuning", |
385 | 416 | "name": "How do you adapt models to your domain?", |
386 | 417 | "description": "Fine-tuning frameworks and platforms for training custom model adaptations with LoRA, QLoRA, or full fine-tuning", |
387 | | - "tools": ["axolotl", "unsloth", "llama-factory", "torchtune", "predibase"], |
| 418 | + "tools": ["axolotl", "unsloth", "llama-factory", "torchtune", "predibase", "trl"], |
388 | 419 | "priority": { |
389 | 420 | "dev-productivity": "not-applicable", |
390 | 421 | "app-infrastructure": "optional", |
391 | 422 | "hybrid": "optional" |
392 | 423 | }, |
393 | 424 | "suggest": "unsloth", |
394 | | - "suggest_reason": "2\u00d7 faster LoRA fine-tuning with minimal memory \u2014 the most efficient OSS option" |
| 425 | + "suggest_reason": "2× faster LoRA fine-tuning with minimal memory — the most efficient OSS option" |
395 | 426 | }, |
396 | 427 | { |
397 | 428 | "id": "voice-ai", |
398 | 429 | "name": "How does your AI speak and listen?", |
399 | | - "description": "Speech synthesis and recognition APIs \u2014 text-to-speech, speech-to-text, and real-time audio intelligence", |
400 | | - "tools": ["vapi", "retell-ai", "elevenlabs", "deepgram", "assemblyai", "cartesia", "playht"], |
| 430 | + "description": "Speech synthesis and recognition APIs — text-to-speech, speech-to-text, and real-time audio intelligence", |
| 431 | + "tools": [ |
| 432 | + "vapi", |
| 433 | + "retell-ai", |
| 434 | + "elevenlabs", |
| 435 | + "deepgram", |
| 436 | + "assemblyai", |
| 437 | + "cartesia", |
| 438 | + "playht", |
| 439 | + "pipecat", |
| 440 | + "livekit-agents" |
| 441 | + ], |
401 | 442 | "priority": { |
402 | 443 | "dev-productivity": "not-applicable", |
403 | 444 | "app-infrastructure": "optional", |
|
417 | 458 | "hybrid": "optional" |
418 | 459 | }, |
419 | 460 | "suggest": "moondream", |
420 | | - "suggest_reason": "Smallest OSS vision model \u2014 runs on a single GPU with surprisingly good results" |
| 461 | + "suggest_reason": "Smallest OSS vision model — runs on a single GPU with surprisingly good results" |
421 | 462 | }, |
422 | 463 | { |
423 | 464 | "id": "browser-automation", |
424 | 465 | "name": "How does your AI navigate the web?", |
425 | 466 | "description": "AI-powered browser control for agents that need to navigate, extract, fill forms, and interact with any website", |
426 | | - "tools": ["browser-use", "stagehand", "skyvern", "firecrawl"], |
| 467 | + "tools": ["browser-use", "stagehand", "skyvern", "firecrawl", "browserbase"], |
427 | 468 | "priority": { |
428 | 469 | "dev-productivity": "optional", |
429 | 470 | "app-infrastructure": "optional", |
430 | 471 | "hybrid": "optional" |
431 | 472 | }, |
432 | 473 | "suggest": "browser-use", |
433 | | - "suggest_reason": "50K GitHub stars \u2014 most-adopted OSS AI browser agent, ~$0.07/task on WebVoyager" |
| 474 | + "suggest_reason": "50K GitHub stars — most-adopted OSS AI browser agent, ~$0.07/task on WebVoyager" |
| 475 | + }, |
| 476 | + { |
| 477 | + "id": "memory", |
| 478 | + "name": "How does your AI remember?", |
| 479 | + "description": "Persistent memory layers that give AI agents long-term recall of users, sessions, and context across conversations", |
| 480 | + "tools": ["mem0", "zep"], |
| 481 | + "priority": { |
| 482 | + "dev-productivity": "not-applicable", |
| 483 | + "app-infrastructure": "optional", |
| 484 | + "hybrid": "optional" |
| 485 | + }, |
| 486 | + "suggest": "mem0", |
| 487 | + "suggest_reason": "30K stars, AWS-partnered — the most-adopted memory layer for production AI agents" |
| 488 | + }, |
| 489 | + { |
| 490 | + "id": "guardrails", |
| 491 | + "name": "How do you keep your AI safe?", |
| 492 | + "description": "Input/output validation, topic controls, and safety rails that ensure LLM responses stay within defined policies", |
| 493 | + "tools": ["nemo-guardrails", "guardrails-ai"], |
| 494 | + "priority": { |
| 495 | + "dev-productivity": "not-applicable", |
| 496 | + "app-infrastructure": "optional", |
| 497 | + "hybrid": "optional" |
| 498 | + }, |
| 499 | + "suggest": "guardrails-ai", |
| 500 | + "suggest_reason": "Pydantic-style validators for LLM outputs — catches hallucinations, PII leaks, and schema violations" |
434 | 501 | } |
435 | 502 | ] |
0 commit comments