What problem does it solve?
It helps teams create reusable Convex components that own their data and backend logic, while exposing a small, app-facing API with the right auth and environment wiring.
Core Features & Use Cases
- Reusable component boundaries: isolate tables and functions inside
convex/components/<name>/ to avoid mixing app logic with shared backend workflows.
- Explicit, safe API contracts: define
args and returns validators for every public component function to keep type contracts clear across the boundary.
- App-side client access: create wrapper queries/mutations/actions in the app so clients never call component functions directly (auth/env access stays in the app).
- Correct codegen wiring: ensure component imports come from the component’s own
./_generated/server and integrate via app.use(...).
Quick Start
Ask for the feature goal, then create a new local Convex component under convex/components/<componentName>/ and wire it into the app by installing it in convex/convex.config.ts with app.use(...), leaving auth/env and any client-facing wrappers in the app.