How ayaanator/superlift works
SuperLift is a cross-platform, offline-first workout log. Users start a session, select exercises, record sets and duration, and save workouts; they can then browse past sessions, view details, and edit or delete saved workouts. The documented product also includes gesture-driven workout interactions and an exercise catalog. The sampled code confirms exercise selection, shared workout state, database initialization, and edit persistence; wiring for several history and save flows is described in the README but not visible in the excerpts, so those links are omitted where ownership is uncertain.
Main entry points: database.js SQLite access · exercises.tsx Exercise picker · index.tsx Quick start · workoutPanelContext.tsx Session state
Components 12
App navigation
- App shell
app/_layout.tsx - Quick start
app/(tabs)/index.tsx
Workout logging
- Session state
app/blocks/workoutPanelContext.tsx - Active workout
app/blocks/workoutPanel.tsx - Exercise picker
app/exercises.tsx - Exercise catalog
constants/exercises.js
History and editing
- Workout history
app/blocks/pastWorkouts.tsx - Session details
app/workouts/details.tsx - Edit session
app/workouts/editMode.tsx
Local data
- SQLite access
database/database.js - Workout database
database/database.js
Other components
- Athlete
Connections 12
- Athlete → Quick start: starts session
- App shell → SQLite access: initializes
- Quick start → Session state: toggles session
- Session state → Active workout: provides state
- Active workout → Exercise picker: opens picker
- Exercise picker → SQLite access: loads catalog
- SQLite access → Workout database: reads and writes
- Exercise picker → Exercise catalog: selects exercises
- Athlete → Workout history: browses sessions
- Workout history → Session details: opens session
- Athlete → Edit session: edits session
- Edit session → SQLite access: loads and updates