convex-create-component

Build reusable Convex components with isolated tables and typed public APIs.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/MichaelFrieze/riffatlas --skill convex-create-component-michaelfrieze
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: convex-create-component
Source: https://github.com/MichaelFrieze/riffatlas/tree/main/.agents/skills/convex-create-component
Command: npx skills add https://github.com/MichaelFrieze/riffatlas --skill convex-create-component-michaelfrieze

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps teams turn backend logic into reusable Convex components that own their tables, functions, and app-facing APIs instead of scattering code across the app.

Core Features & Use Cases

  • Component-first design: Choose whether the component should be local, packaged, or hybrid based on sharing and reuse needs.
  • Clear boundary wiring: Create component-local convex.config.ts/schema.ts/functions, then install with app.use(...) and call via ctx.runQuery, ctx.runMutation, or ctx.runAction.
  • Correct auth/env handling: Keep authentication and environment access in the app layer while passing explicit values across the component boundary.

Example use case: Extract an app feature like “workspace membership notifications” into a Convex component that owns its tables and exposes small, well-typed functions, while the app provides auth-aware wrappers for clients.

Quick Start

Ask for a new Convex component that encapsulates the required tables and public functions, then follow the workflow to choose a shape, implement the component-local schema and functions, and wire app-side wrappers using ctx.runMutation or ctx.runQuery.

Frequently Asked Questions about convex-create-component

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create reusable Convex components with isolated tables?▼

To create reusable Convex components, you build component-local schema and functions with isolated tables, then install them via `app.use(...)` and expose well-typed public wrappers using `ctx.runQuery`, `ctx.runMutation`, or `ctx.runAction` for app-side wiring.

What is the best way to extract backend logic into a reusable Convex component?▼

The best way to extract reusable Convex components is to choose a component shape—local, packaged, or hybrid—implement component-local schema and functions, then wire app-side auth-aware wrappers for clients.

How does authentication work across Convex component boundaries?▼

Authentication across Convex component boundaries requires keeping auth in the app layer while passing explicit values across the boundary, ensuring the reusable component itself remains boundary-safe and doesn't directly access environment authentication.

Can I package Convex functionality for reuse across multiple apps?▼

Yes, you can package Convex functionality for reuse across apps by creating a hybrid or packaged component that owns its tables and exposes small, well-typed functions, then installing it in each app using `app.use`.

When should I not use a packaged Convex component?▼

You should not use a packaged Convex component when authentication or environment access cannot be kept in the app layer, as Convex components require boundary-safe auth and explicit value passing rather than direct internal access.

Do I need to define a schema when building a Convex component?▼

Yes, you need to define a component-local `schema.ts` when building a Convex component to ensure the component owns its isolated tables and maintains clean boundaries from the main application code.