convex-development
21
总安装量
5
周安装量
#17608
全站排名
安装命令
npx skills add https://github.com/phrazzld/claude-config --skill convex-development
Agent 安装分布
mcpjam
5
droid
5
kilo
5
gemini-cli
5
antigravity
5
windsurf
5
Skill 文档
Convex Development
Best practices for robust, secure, performant, cost-effective Convex backends.
Core Principle
Deep modules via the convex/model/ pattern. Most logic should be plain TypeScript; query/mutation wrappers should be thin.
convex/
_generated/ # MUST commit to git!
model/ # Business logic (testable, reusable)
users.ts # Public API (thin wrappers)
schema.ts
Critical Rules
- ALWAYS commit
convex/_generated/– Required for type-checking, CI/CD, team productivity - Index what you query –
.withIndex()not.filter()for efficient queries - Compound indexes for multi-field filters – If querying
userId + status, create index["userId", "status"]to filter at index level, not post-fetch - Paginate everything – Never unbounded
.collect()on user-facing queries - Trust
ctx.authonly – Never user-provided auth data
Quick Reference
| Need | Use |
|---|---|
| Read data reactively | query |
| Write to database | mutation |
| External APIs, vector search | action |
| Scheduled tasks | internalMutation / internalAction |
Anti-Patterns Scanner
Run scripts/anti_patterns_scanner.py ./convex to detect common issues.
Detailed References
For comprehensive guidance, see:
references/cost-mitigation.md– Bandwidth optimization, indexing, paginationreferences/embeddings-vectors.md– Vector search patterns, co-location decisionsreferences/query-performance.md– Compound indexes, query segmentation, cachingreferences/security-access.md– Auth patterns, RLS, RBAC, convex-helpersreferences/schema-migrations.md– Expand/Contract pattern, environment managementreferences/architectural-patterns.md– File organization, state machines, naming
Philosophy
- Cost First: Bandwidth is often the largest cost. Index aggressively, paginate everything.
- Security First: Never trust client input. Always use
ctx.auth. - Reactivity is Power: Use
useQueryfor real-time updates; don’t forfeit with one-off fetches. - Type Safety End-to-End: Leverage Convex’s full type chain from database to UI.