Platform
What do we control directly?
Components Used
| Component | Role |
|---|---|
| CDD Prototype | 5 interaction patterns explored — Morning Pages, Compass, Stack, Mission Control, Conversation |
| Figma Template | Visual design + grid layout |
| Stackmates Auth | User accounts, session management |
| Convex | Real-time data layer — collaborative, live updates |
| AI Agent Paths | Suggest questions for empty cells, coaching mode |
| Mental Model Content | 1,200+ pages of 5P-structured domain content as templates |
Build ratio: ~60% composition, ~40% new code
Interaction Patterns
The prototype explored five ways to interact with the same 5x5 data:
| Pattern | Metaphor | Density | Best For | Build Priority |
|---|---|---|---|---|
| Mission Control | Dashboard | High — all 25 cells visible | Desktop review, team alignment | V1 — ship first |
| The Stack | Card deck | Medium — one card at a time | Mobile, daily check-in | V1 — ship alongside |
| Morning Pages | Journal | Low — one prompt, meditative | Reflection, Pep Talk mode | V2 |
| The Compass | Navigation | Medium — radial layout | Spatial thinkers, exploration | V2 |
| The Conversation | AI coach | Adaptive — chat-driven | New users, guided onboarding | V3 |
V1 ships two patterns: Mission Control (desktop, all-at-once) and The Stack (mobile, one-at-a-time). Same data, different interaction density.
System Design
+-------------------------------------------------+
| INTERACTION LAYER |
| Mission Control | Stack | Morning | Compass | AI|
+-------------------------------------------------+
| DECK ENGINE |
| 5x5 Matrix | Modes | Scales | Snapshots |
+-------------------------------------------------+
| DATA LAYER (Convex) |
| Cells | Priorities | Versions | User State |
+-------------------------------------------------+
| PLATFORM (Stackmates) |
| Auth | Storage | Sharing | AI Prompts |
+-------------------------------------------------+
Data Model
Deck {
id, userId, title, scale, mode, createdAt, updatedAt
}
Priority {
id, deckId, position (1-5), label, description
}
Cell {
id, deckId, priorityIndex (1-5), promptIndex (1-5), content, updatedAt
}
Snapshot {
id, deckId, cells[], takenAt, label
}
Five prompts are fixed (Performance, Protocols, Platform, Players, Principles). Five priorities are user-defined (the columns). 25 cells are the intersection. Snapshots capture a moment for comparison.
Database Selection
| Layer | Database | Why |
|---|---|---|
| Grid state | Convex | Real-time collaboration, live updates, optimistic UI |
| User profiles | Supabase (PostgreSQL) | Relational, historical, auth integration |
| Shared/published decks | Edge cache | Fast reads, public access |
Different jobs, different data characteristics. The Prompt Deck is the proving ground for this multi-database pattern.
Context
- Live Prototype — Current CDD build
- Spec Hub — Back to planning frame