Skip to main content

Tech stack

The technologies LifeWell is built on. The choices reflect a few overall constraints: free or low-cost infrastructure, modern but stable (no bleeding-edge experiments in critical paths), cross-platform single codebase, and user data ownership (Google Drive for media, your own Firebase quota when possible).

Frontend

LayerTechnology
LanguageTypeScript 5.9+
FrameworkReact 19
Build toolVite 8
RoutingTanStack Router (file-based)
State (client)Zustand 5
State (server data)TanStack Query
UI componentsRadix UI primitives + Radix Themes
StylingTailwind CSS 4 + Radix tokens
FormsReact Hook Form + Zod
Rich textTipTap
Charts / D3 graphsD3.js
Date handlingdate-fns
IconsLucide React
AnimationCSS only (no framer-motion as dep)

Mobile

LayerTechnology
Native shellCapacitor 8
Android targetAPI 24+ (Android 7.0+)
iOS targetiOS 15+
Plugins@capacitor/* official + community
PushOneSignal (over FCM + APNs)
Local notifications@capacitor/local-notifications
Storage@capacitor/preferences (canonical)
Camera@capacitor/camera
Geolocation@capacitor/geolocation (opt-in)

Browser extension

LayerTechnology
FrameworkWXT
ManifestV3
AuthChrome Identity API (NOT Firebase Auth SDK)
UIReact (popup + content scripts)
BuildVite + WXT
DistributionChrome Web Store (Edge / Brave install from there too)

Backend / services

ServiceUse
Firebase AuthSign-in (Google + email)
FirestorePrimary database
Firebase HostingWeb app hosting
Firebase Cloud FunctionsMinimal use (scheduled jobs)
Google Drive (user's)Media storage
Cloudflare WorkersOAuth token-exchange proxy
OneSignalPush notifications
SentryCrash reporting
AmplitudeProduct analytics
Microsoft ClarityWeb heatmaps
FilesHubOptional file storage

Internationalisation

  • i18next + react-i18next
  • 10 locales: English, Arabic, Spanish, French, German, Portuguese, Russian, Turkish, Urdu (planned), Chinese (Simplified)
  • RTL support for Arabic + Urdu

Build / CI / tooling

ToolUse
Yarn (4)Package manager — canonical
ESLintLinting (typescript-eslint + eslint-plugin-react + react-hooks)
PrettierFormatting
TypeScriptType checking
GitHub ActionsCI
Firebase CLIDeploy hosting + Firestore indexes
Wrangler CLIDeploy Cloudflare Workers
Capacitor CLISync + open native projects

Repository structure

lifewell/
├── src/ # React app
├── extension/ # WXT browser extension
├── functions/ # Firebase Cloud Functions (minimal)
├── android/ # Capacitor Android wrapper
├── ios/ # Capacitor iOS wrapper
├── workers/ # Cloudflare Workers (OAuth proxy)
├── docs/ # Markdown documentation (private repo)
├── app-publish-assets/ # Play Store / App Store assets
└── public/ # Static files

The lifewell-docs repo (where this documentation lives) is separate and public — open-sourced under CC-BY-4.0 so anyone can learn from the docs.

Why these choices

A few notes on the high-conviction picks:

  • React 19 + TanStack Router: file-based routing with strong TypeScript + concurrent React features.
  • Capacitor over React Native: web-first then native makes more sense for LifeWell's surface area; one codebase across web + mobile.
  • Radix + Tailwind: accessible primitives + utility-first styling. Avoids the heavy abstraction of MUI.
  • Firestore: free tier covers our launch volume; structured documents fit the schema; rules are battle-tested.
  • OneSignal: free push that abstracts FCM + APNs.
  • Cloudflare Workers: free OAuth proxy. Could have been Firebase Functions but those need Blaze plan.
  • TipTap: extensible rich-text editor that doesn't bake in opinions.
  • Yarn 4: monorepo-friendly, fast, modern lockfile format.

Versions

LifeWell tracks the latest stable versions of all dependencies. Major-version upgrades happen quarterly with full regression testing. Security patches are applied within days of disclosure.

Open source

LifeWell's main codebase is private. This documentation site is open-source at github.com/aoneahsan/lifewell-docs (once the repo goes public in Phase 14 of the docs build plan).

Components and libraries we use are open-source — we're grateful to those communities.


Last updated: 2026-05-11 Author: Ahsan Mahmood