The Cloud — Tech Stack
Monorepo
Bun + Turborepo — package management & build orchestration
TypeScript 6.0 across all packages
Frontend (3 platforms)
Platform | Framework | UI |
|---|---|---|
Web | Next.js 16 (React 19, Turbopack) | TailwindCSS 4, shadcn/ui, Base UI |
Mobile | Expo 55 (React Native 0.84) | HeroUI Native, Uniwind |
Desktop | Electron 41 (Vite) | TailwindCSS 4 |
Backend & Database
Convex 1.34 — real-time BaaS (database, functions, crons, file storage)
Auth, Payments, Email
Better Auth — multi-platform auth with Convex integration
Stripe — payments via
@convex-dev/stripeResend + React Email — transactional emails
AI
Vercel AI SDK + OpenRouter — multi-LLM provider
@convex-dev/agent — AI agent framework
Rich Text & Collaboration
TipTap 3.20 — WYSIWYG editor with collaborative editing via ProseMirror Sync
State & UI Libraries
Zustand — state management
dnd-kit — drag-and-drop
XYFlow — node-based diagrams
React Grid Layout — dashboard grids
Motion — animations
Recharts — data visualization
cmdk — command palette
TanStack (Form, Virtual, Pacer)
Testing & Quality
Vitest + Testing Library — unit/component tests
Playwright — E2E tests
Biome (via Ultracite) — linting & formatting
Husky + lint-staged — git hooks
Analytics
PostHog — product analytics (with ad-blocker bypass via Next.js rewrites)
Validation & Utilities
Zod 4 — schema validation
@t3-oss/env — type-safe environment variables
date-fns, nanoid, clsx, tailwind-merge, CVA
Analytics — region detail
PostHog runs as two separate deployments — name both so data residency is explicit:
PostHog US Cloud — US-hosted instance (US users / US data)
PostHog EU Cloud — EU-hosted instance (EU data residency, GDPR-aligned)
Confirm the routing logic — which instance a given user/event lands on, and whether the existing Next.js rewrite (ad-blocker bypass) needs a per-region variant.
Gaps to define
Categories the platform needs (or soon will) that don't have a confirmed tool yet. Fill the Pick column. If we already use something that just isn't listed above, name it here and it gets promoted into the main stack.
Area | What it covers | Pick (TBD) | Notes |
|---|---|---|---|
Financial tooling | Accounting, invoicing, revenue recognition, books | ___ | Stripe handles payments; this is the ledger layer |
Sales tax / VAT | Tax calc + remittance on charges | ___ | Stripe Tax? Anrok? |
Error monitoring | Exception tracking, source maps, alerting | ___ | Not currently listed — Sentry? PostHog error tracking? |
Observability / APM | Traces, latency, uptime, structured logs | ___ | Convex covers some — external layer? |
CI/CD | Build + deploy pipeline | ___ | Husky / lint-staged are local hooks only |
Secrets management | API keys + env secrets across environments | ___ | @t3-oss/env types them — where are they stored? |
Customer support | Helpdesk, ticketing, in-app chat | ___ | |
CRM | Lead + customer relationship pipeline | ___ | |
Search | Full-text + vector / semantic | ___ | Convex native or external? |
Background jobs / queues | Async work, scheduled tasks | ___ | Convex crons cover part of this |
SMS / push notifications | Transactional non-email messaging | ___ | Resend is email-only |
Status page | Public incident + uptime comms | ___ | |
Security / compliance | SOC 2, pen testing, vuln scanning | ___ | Matters for enterprise + AppStore trust |
Backup / DR | Data backup + disaster recovery | ___ | Convex-managed — confirm the policy |
Feature flags | Gated rollout, A/B testing | ___ | PostHog can do this — confirm if in use |