All posts

GoLightWeight — Offline-First Workout Tracker

GoLightWeight is a mobile workout tracker built for intermediate to advanced lifters who want something fast, reliable, and works without internet. The core idea: your workout data should live on your phone first, and sync when it can. Every set, routine, and personal record is written to local SQLite, so the app stays fully usable in a basement gym with no signal.

What it does

  • Log sets with weight, reps, and tempo across barbell, dumbbell, machine, bodyweight, and cardio exercises, plus an optional effort column (RPE or RIR)
  • Workout planner — schedule a session on a future date, edit it with the same controls used mid-workout, and start it when the day comes
  • Set types (warmup, working, top, drop, failure) and supersets that rename themselves as they grow — superset, tri-set, giant set
  • 23 built-in training programs (StrongLifts 5×5, 5/3/1 variants, Texas Method, PHUL/PHAT) with a per-program progression engine, free for everyone
  • Exercise library of 449 exercises — 269 illustrated, 211 with animated two-frame demos
  • Automatic PR detection across max weight, max volume, estimated 1RM, and max reps on bodyweight — the celebration fires only for numbers actually lifted
  • Routines with smart set templates (pyramid, drop, top+backoff), a plate calculator, and a custom numeric keypad built for between-set entry
  • Rest and interval timers that survive backgrounding and lock, counting the last three seconds down out loud — the app renders the audio itself, so it is heard through the ring switch and while the phone is locked
  • Apple Watch companion that taps your wrist the moment rest ends, kept alive for the whole session by a HealthKit workout session
  • Screen stays awake while a workout screen is open, and releases when you leave it
  • Analytics dashboard with custom SVG charts — volume trends, strength progress, muscle balance, calendar heatmap, and body composition
  • Works fully offline on local SQLite, syncing to the cloud when a connection returns
  • Apple Health sync (bodyweight in, workouts out), English and Korean localization, and a share-card carousel — a Story card shading the muscles worked, a transparent Instagram-sticker variant, and a PR card on days that earned one, with a share row straight to Stories, Messages, and Photos
  • Free tier with a daily workout limit and ads; Pro unlocks unlimited workouts, auto-sync, and the full analytics set
  • iOS live on the App Store; Android is in closed testing on Google Play

Tech stack

React Native 0.83 on Expo SDK 55 (bare workflow, bridgeless) with TypeScript. WatermelonDB (SQLite, 12 models) handles local-first storage and syncs to Supabase (PostgreSQL, Auth, Edge Functions) with last-write-wins conflict resolution. Auth is Apple and Google OAuth plus a guest mode that migrates data on sign-up. RevenueCat powers Pro subscriptions, AdMob serves the free tier, Sentry catches crashes, HealthKit connects to Apple Health, and the analytics charts are custom-built on react-native-svg. The Apple Watch target ships via @bacons/apple-targets. Backed by 4,100+ Jest tests across 330+ suites. The marketing site at golightweight.app is a separate Next.js 16 app hosting a 1,512-page exercise library and an evidence-graded supplement reference.