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.