Daniel Hanks

The Interface (of) The Future Father 🧿🍁

Back to pages

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/stripe

  • Resend + 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

Maintenance

Verify each version number against latest stable (Next.js, Convex, Expo, Electron, TipTap, TypeScript, Zod)
Confirm PostHog US vs EU routing logic
Fill the Gaps table; promote confirmed picks up into the main stack
The Cloud