Tech Stack
On this page
Tech Stack
Which position blocks the recipe?
A capability recipe cannot execute without the jobs underneath — persistence, identity, deployment. Name the position the recipe needs, check whether it is chosen or conditional or absent, then follow the next move:
- Chosen → position is filled; recipe can proceed; check Documentation for player details
- Conditional → player installed but not accepted as default; review Known Gaps or proceed with explicit acceptance
- Absent → position unfilled; add to Known Gaps with Owner and Next
Example consumer: Authorise Bounded Work needs durable records and trusted identity. Check positions Data (PostgreSQL + Drizzle: chosen) and Trust (Better Auth: chosen) → recipe can stand.
Position is the job. Player is the replaceable mate. Choosing a product before naming the job is choosing backwards.
The lineup
Skip to coverage decision or see the current Stackmates choices below — positions first, players second. States are honest: chosen means evidenced in the live monorepo; conditional means installed or available but not accepted as the default production path. This is a short core lineup for the Stackmates game, not a complete catalogue.
Core engineering
| Position | Current player | State |
|---|---|---|
| Source control and pull-request execution | Git, GitHub, Cursor | chosen |
| Workspace packages and task graph | pnpm + Nx | chosen |
| Affected CI and selective cloud proof | Local Nx + GitHub Actions (+ optional cloud executor) | chosen |
| Source and static contracts | TypeScript | chosen |
| Web application runtime | Next.js + React | chosen |
| Styling and interaction primitives | Tailwind CSS + Radix | chosen |
| Interactive form state | TanStack Form | chosen |
| Runtime boundary validation | Zod | chosen |
| Relational persistence | PostgreSQL + Drizzle | chosen |
| Authentication | Better Auth | chosen |
| Model invocation and streaming | Vercel AI SDK | chosen |
| Unit, integration, and browser proof | Vitest + Playwright | chosen |
| Web deployment | Vercel | chosen |
| Named server and API entrypoints | NestJS | chosen |
Product and provider edges
| Position | Current player | State |
|---|---|---|
| Payment execution | Stripe | chosen |
| Email delivery | Resend | chosen |
| Browser file uploads | UploadThing | chosen |
| Fleet-wide public request admission | Upstash Redis + Ratelimit | chosen |
| Principal chain integration | Sui | chosen |
| Additional active chain SDK | Solana | chosen |
| Sui-adjacent blob storage | Walrus | conditional |
This is a short core lineup for the Stackmates game, not a complete vendor catalogue and not a claim that every venture already closes the atoms loop.
Serves recipes
Capability recipes own the work. The stack is what those recipes build upon and with. Skills and tools are ingredients inside a recipe, not a second catalogue.
demand → recipe → skills and tools inside it → stack positions underneath
The stack does not choose values or policy. Humans keep purpose, consent, stop, and accepted risk.
Coverage decision
game → positions the game needs → core / conditional / absent / unknown
→ must-gates → surviving players → smallest test → human selects mate
→ one journey across the lineup → return variance
Routes
Sub-topics
- Documentation — see how governed source becomes a readable public site without losing provenance or release authority.
Pages
- Known Gaps — record observable differences between intended stack direction and the live codebase before correcting them.