Tech Stack

We choose tools based on what ships great products, not trends. This is what we reach for.

Mobile

TechnologyWhat it isHow we use it
React NativeCross-platform mobile frameworkAll iOS + Android apps — single codebase, native performance
Expo SDK 53React Native toolchain + APIsBuild pipeline, OTA updates, device APIs (camera, AR, notifications)
TypeScriptTyped JavaScriptAll projects — catches entire classes of bugs at compile time
Expo RouterFile-based navigationScreen routing, deep linking, universal links
React Native Reanimated 3Native-thread animations60fps animations without blocking the JS thread
ZustandLightweight state managementClient-side game state, session state
RevenueCatIn-app purchase managementCross-platform subscription and one-time purchase handling
ViroReact + Expo ARAR frameworkBoard anchoring, AR family tree overlays
EASCloud build + OTAProduction builds, TestFlight/Play Console distribution, over-the-air updates

Web

TechnologyWhat it isHow we use it
Next.js 15React framework with App RouterAll web platforms — SSG for marketing, SSR for dynamic data
React 19UI libraryComponent model, concurrent rendering, server components
TypeScriptTyped JavaScriptAll web projects — end-to-end type safety
Tailwind CSS v4Utility-first CSSAll styling — no custom CSS files
shadcn/uiAccessible component libraryUI components built on Radix primitives
Motion (Framer Motion v12)Animation libraryPage transitions, scroll animations, micro-interactions
TipTapRich text editorForum posts, memoirs, heritage documentation
Drizzle ORMType-safe SQL ORMDatabase queries with full TypeScript inference
tRPCEnd-to-end type-safe APIInternal API layer where REST would be over-engineered

Backend & Data

TechnologyWhat it isHow we use it
SupabasePostgreSQL + Auth + RLS + RealtimeMulti-tenant SaaS backends — data isolation via RLS policies
NeonServerless PostgresLightweight projects that don't need the full Supabase surface area
Firebase FirestoreNoSQL realtime databaseReal-time sync (PresentPro) — sub-100ms propagation to connected clients
Cloudflare R2Object storageMedia, documents, exports — S3-compatible, no egress fees
Cloudflare WorkersEdge computeMiddleware, geo-routing, lightweight API at the edge

AI & Intelligence

TechnologyWhat it isHow we use it
Claude API (Anthropic)Large language modelAI personas, post-game coaching, memoir assistants, family historians
Vercel AI SDKAI integration toolkitStreaming responses, tool use, provider switching
WhisperSpeech-to-textVoice note transcription in Heritage

Auth, Email & Payments

TechnologyWhat it isHow we use it
Supabase AuthAuthentication serviceEmail/password, magic link, Google OAuth — all projects
ClerkAuth + user managementProjects requiring advanced org management and user profiles
ResendTransactional emailInvites, billing alerts, contact notifications — React Email templates
StripePayment processingWeb subscriptions, Checkout, Customer Portal, Webhooks
RevenueCatMobile paymentsiOS + Android in-app purchases and subscriptions

Infrastructure & Monitoring

TechnologyWhat it isHow we use it
VercelDeployment platformAll Next.js deployments — preview branches, edge network
GitHub ActionsCI/CDAutomated testing, linting, deployment triggers
EAS BuildMobile CI/CDCloud builds for iOS + Android, TestFlight/Play Console delivery
SentryError trackingRuntime error monitoring across web and mobile
PostHogProduct analyticsFeature usage, funnel analysis, session replays
VitestUnit testingFast unit and integration tests
PlaywrightE2E testingBrowser automation for critical user flows
DetoxMobile E2E testingEnd-to-end testing on iOS and Android simulators