Kits
Everything beyond the dashboard is an optional kit: a bundle a person adds to their space only if they want it. A new space has only HQ, the page and the AI chat. Kits are described once in convex/lib/kits.ts; HQ → Library lists them, and the AI can propose adding one.
What a kit is #
- Engines it switches on (below). Engines are the only server code; kits are settings.
- What it adds to the blueprint: pages, blocks, words and settings, under ids the kit owns.
- Its settings in
blueprint.kits.<id>, so it can be changed by hand or by the AI. - Adding a kit is a change saved as a version; removing it takes out what it added. Both can be undone.
A kit never hard-codes a use case: "Support desk" is a space with a queue and assignment, "VIP" is a rank. People rename and restyle everything a kit adds.
The engines #
| Engine | What it is, abstractly | Kits on it |
|---|---|---|
| Collections | Any records with fields the AI or a person defines | Forms, shop, boards and tasks, contacts, docs |
| Spaces | A place with members, roles and a stream of posts | Direct chat, group chat, channels, teamspace, support desk, feed |
| Structure | Any tree or graph of units with roles, ranks and badges | Teams and hierarchy of any kind, tiers, VIP, verified |
| Ledger | Balances in any unit and transfers | Coins, payments (Stripe), tips |
| Rounds | An interactive session: players, turns, timer, randomness, result, prize | Polls, Hot Potato, wheel, High Card |
| Rooms | Live audio and video (LiveKit) | Calls, video, group calls, screen share, live streams |
| Time | Resources, availability, bookings, schedules | Scheduler, appointments, service page, events and tickets |
| Lifecycle | Draft, scheduled, published, archived, with approvals | Drafts, scheduled posts, requests and approvals |
| Events | Anything recorded, counted and ranked | Analytics, leaderboards, quests |
| Apps | Sandboxed mini-apps behind the bridge | Apps, custom games, the game maker |
| Capabilities | Outside services through a vault (MCP, APIs, web search) | Web research, connections, auto-post |
| Screens | Show a page or game on another screen (TV, projector); phones act as controllers | Show on TV, party games |
| Audiences | Who a space is for, with age-aware rules set by grown-ups | Kids spaces |
| Automations | Bots (AI teammates with a role, tools and approval rules) and when → if → do rules, schedules, webhooks | Bots, automations, helper bot, welcome message, reply drafts, daily digest, coins for posts |
What's ready #
kitReady in convex/lib/kits.ts is the source of truth; HQ → Library shows the rest as "Soon". Engines ready: Collections, Spaces, Structure, Time, Events, Apps, Capabilities, Audiences.
| Kit | What it adds | Server code |
|---|---|---|
| Forms, Contacts, Tasks, Catalog | Collections and pages with records blocks | convex/records.ts |
| Group chat, Channels, Feed, Teamspace | Streams (blueprint.streams) and stream blocks; channels limit writers with postRoles | convex/streams.ts |
| Direct chat | The direct block; DMs belong to the two people, not the space | convex/dms.ts |
| Kids space | audience: "kids", grown-up and kid roles, a kids' chat; the space stays private and invite-only | checks in convex/lib/blueprint.ts |
| Web research | Turns on the AI's web search and page reading, plus a notes collection | convex/ai.ts |
| Analytics | An owner-only page with the analytics block | convex/events.ts, convex/tally.ts |
| Appointments | A booking block whose props are the opening hours | convex/bookings.ts, convex/lib/time.ts |
| Scheduler | The scheduled block: write now, post into a stream later | convex/streams.ts (schedule) |
| Bots, Automations and recipes | /bots and /automations, the Bots page (bots.* blocks); recipes are only entries | convex/kits/bots (README there) |
Counting (Events): engines call count(ctx, ws, name, userId) from convex/tally.ts. It writes only when the space has a kit in TALLY_KITS, so spaces pay nothing for what they don't use. api.events.leaders ranks people by any event; leaderboards and quests read it.
A kit can add collections, pages, streams and roles, and set an audience. Removing it takes out what it added (records stay, roles still in use stay).
Each engine's code sits in convex/kits/<engine>/ with a README.md (settings, functions, tables, blocks, kits) and its screens in src/kits/<engine>/. Spaces: convex/kits/talk. Structure: convex/kits/structure.
Party games (trivia, quiz board, survey showdown, charades, the party pack) are all Rounds with teams, a timer, scores and a screen, so the game maker can build new ones from the same parts. Group plans and Secret Santa are collections, polls and a fair draw inside a space.
The full catalog and the order they are built in: the "Zvessa kits and styles" doc in the project.