Appearance
Stacks — default services & libraries for digital products
Seeds with generous free tiers, not a closed menu — every choice accepts "other" (the user names it, you research and wire it). Per service: connect-or-create (BOOTSTRAP §12), access via mcp_config/custom-env, destructive/outward actions still gated by the owner. Offer only what the interview's needs actually name.
Services by need
Version control
- Default: GitHub
- What you'd use it for: repo = company monorepo; PRs are the conveyor's merge gate; webhooks feed autopilots
- Free tier: ✅
Backend / DB
- Default: Supabase
- What you'd use it for: Postgres + auth + storage + realtime + edge functions in one; RLS for permissions; good MCP
- Free tier: ✅
All-in-one client DB
- Default: InstantDB
- What you'd use it for: Firebase-alternative: realtime relational DB + auth + presence + storage; CLI-first, built for AI agents to drive without dashboards; offline-first multiplayer UIs
- Free tier: ✅
Offline-first sync
- Default: PowerSync
- What you'd use it for: syncs Postgres/MongoDB/MySQL/SQL Server into in-app SQLite; kills hand-rolled state-over-API plumbing; web, RN/Expo, Flutter, Swift, Kotlin
- Free tier: ✅
Deploy / hosting
- Default: Vercel
- What you'd use it for: web apps & sites, preview deploys per PR (Design QA loves them), edge functions, cron
- Free tier: ✅
Domains
- Default: Namecheap
- What you'd use it for: buy domains cheap; DNS can stay here or move
- Free tier: —
DNS
- Default: Vercel DNS or Cloudflare
- What you'd use it for: if the site lives on Vercel, its DNS is simplest (per-subdomain, zero config); Cloudflare when you want a proxy/WAF/workers in front or many non-Vercel services
- Free tier: ✅
Payments
- Default: Stripe
- What you'd use it for: cards/subscriptions/invoices, full control (needs your own tax handling); for solo digital products a Merchant-of-Record (e.g. Lemon Squeezy/Paddle) may fit better — MoR handles VAT
- Free tier: —
Auth + billing
- Default: Clerk
- What you'd use it for: drop-in auth UI (social, MFA, orgs) + subscription billing glued to it; fastest path for SaaS
- Free tier: ✅
Email
- Default: Resend
- What you'd use it for: transactional + marketing sends from code; React Email templates
- Free tier: ✅
Analytics
- Default: PostHog
- What you'd use it for: product events, funnels, session replay, feature flags, A/B; pairs with the Analyst role's whitelist
- Free tier: ✅
Error tracking
- Default: Sentry
- What you'd use it for: crash/error reports with releases + sourcemaps; wire alerts to an autopilot triage sweep
- Free tier: ✅
Cache / queues
- Default: Upstash
- What you'd use it for: serverless Redis + QStash (queues/cron over HTTP); rate limits, sessions, job fan-out
- Free tier: ✅
Vectors / memory / recall** (for the product)
- Default: pgvector (Supabase) for small; Pinecone for scale; mem0 / Supermemory (managed agent memory) or Memori (SQL-native) for per-user recall; Memgraph when relationships dominate
- What you'd use it for: RAG, semantic search, long-term/per-user memory, a knowledge graph — only if the app you're building needs it. Pick by shape: vector = similarity, graph = relationships
- Free tier: mixed
AI gateway
- Default: OpenRouter
- What you'd use it for: one API to 400+ models / 70+ providers, OpenAI-SDK-compatible; fallbacks when a provider is down; per-model data policies; credit-based
- Free tier: —
Decision rules the assistant applies:
- Fewest services that cover the need — Supabase already gives auth/storage/ pgvector; add Clerk/Pinecone only when its specific strength is needed.
- MoR vs Stripe: selling globally as a solo/indie → MoR handles sales tax; platform features/marketplaces → Stripe.
- DNS: site on Vercel → Vercel DNS; otherwise Cloudflare.
- Product memory ≠ team memory. The memory row above is for the product you build. The agent team's own memory is the repo + issues (git-versioned, the source of truth) — never add a memory store as a second source. If a very large history ever needs semantic recall, add a vector index as a derived index rebuilt from the repo/issues, never something agents write to independently.
- Anything here can be swapped by naming an alternative — research, compare, wire.
Default libraries — AI-fluent stacks
LLMs write best in what they've seen most; picking mainstream stacks measurably cuts hallucinated APIs and review churn. Defaults (override any via interview):
Web app / site
- Default stack: TypeScript + React + Next.js + Tailwind + shadcn/ui (Radix under the hood)
- Why: deepest LLM training coverage; shadcn is copy-in code agents can edit directly
Mobile
- Default stack: React Native + Expo (cross-platform) · SwiftUI (iOS-native) · Jetpack Compose (Android-native)
- Why: Expo for one codebase; native pairs when the product demands platform depth
Desktop
- Default stack: Tauri (light, Rust shell + web UI) · Electron (max ecosystem) · SwiftUI/AppKit (macOS-native)
- Why: pick by footprint vs ecosystem vs nativeness
API / backend
- Default stack: TypeScript (Next.js API/Hono/Fastify) or Python (FastAPI)
- Why: both are LLM home turf; match the team's main language
CLI / tooling
- Default stack: TypeScript (commander) or Go
- Why: distribution ease vs single-binary
AI features
- Default stack: Vercel AI SDK (+ OpenRouter as the gateway)
- Why: streaming/tool-calling glue LLMs know well
Rule of thumb: deviate from these only when the project itself dictates (a DSP app is C/Swift no matter what LLMs prefer) — and record the deviation in the guide.