AI agent skill · by @korallis
Convex Backend
Build real-time, reactive backend applications with Convex using TypeScript queries, mutations, and actions with automatic reactivity and optimistic updates. Use when building real-time collaborative applications, implementing reactive data synchronization, writing serverless backend functions, creating queries that auto-update, implementing mutations with transactional guarantees, handling file uploads with Convex storage, implementing authentication with Convex Auth, designing reactive database schemas, or building applications requiring instant data synchronization.
Archived 2026-10-23 · Source updated 2025-11-26. Check the original repository for the latest version.
SKILL.md instructions
# Convex Backend - Realtime Database & Functions
## When to use this skill
- Building real-time collaborative applications
- Implementing reactive data that auto-updates
- Writing Convex queries, mutations, and actions
- Creating serverless backend functions with TypeScript
- Implementing optimistic UI updates
- Handling file uploads with Convex storage
- Implementing authentication with Convex Auth
- Designing Convex database schemas
- Building chat applications or live dashboards
- Creating applications with instant data sync
- Implementing scheduled functions (crons)
- Building backends without managing infrastructure
## When to use this skill
- Building realtime apps with Convex, implementing reactive queries, or managing backend logic with type-safe functions.
- When working on related tasks or features
- During development that requires this expertise
**Use when**: Building realtime apps with Convex, implementing reactive queries, or managing backend logic with type-safe functions.
## Core Concepts
### Queries (Read Data)
\`\`\`typescript
import { query } from './_generated/server';
import { v } from 'convex/values';
export const list = query({
args: {},
handler: async (ctx) => {
return await ctx.db.query('users').collect();
}
});
export const get = query({
args: { id: v.id('users') },
handler: async (ctx, args) => {
return await ctx.db.get(args.id);
}
});
\`\`\`
### Mutations (Write Data)
\`\`\`typescript
import { mutation } from './_generated/server';
export const create = mutation({
args: { name: v.string(), email: v.string() },
handler: async (ctx, args) => {
return await ctx.db.insert('users', args);
}
});
\`\`\`
## Resources
- [Convex Docs](https://docs.convex.dev/)