Mobile Platform

LiftRoute — Workout Planner

Production iOS workout planner with offline-first architecture and automated App Store delivery

View live site
LiftRoute — Workout Planner

Live on App Store

27 migrations

5 training methods

Context

LiftRoute is a production iOS app I designed, built, and operate end to end. The problem: lifters running structured strength programs plan multi-week cycles in spreadsheets. The engineering: an offline-first data architecture, a rule-based program-generation engine, and a fully automated release pipeline — every layer owned by one person, live on the App Store.

  • React Native with offline-first SQLite architecture
  • 27-migration database schema with versioned auto-generation
  • Live on the App Store with automated GitHub Actions + Fastlane CI/CD

Problem

Structured strength training programs require precise calculations and multi-week periodization — but lifters were stuck managing it all in spreadsheets.

Solution

01

Database Architecture

Design an offline-first SQLite schema to persist user profiles, exercise catalogs (100+ exercises), generated training programs, and workout session history — all on-device with no backend dependency. Implement a versioned migration system (27 migrations) with auto-generation from raw SQL files.

02

Training Program Engine

Architect a rule-based program generator that takes user preferences (goals, equipment, experience level) and applies goal-specific rulesets (Strength, Hypertrophy, Fat Loss, 5/3/1, APRE) to produce multi-week periodized training plans with exercise selection, set/rep prescriptions, and percentage-based loading.

03

CI/CD Pipeline

Build an automated deployment pipeline using GitHub Actions (macOS 14 runner) and Fastlane to handle Ruby/Node setup, CocoaPods install, app icon generation, versioning, and TestFlight upload — triggered on push to main or manual dispatch.

04

Workout Tracking

Implement real-time workout logging with set/rep/weight tracking, session persistence via SQLite transactions, and cross-tab navigation so users can access active workouts from multiple entry points in the app.