likwiid/plateclimb

The Foundational Fitness protocol as a free, offline workout app for Android and iOS: 12 weeks of lifting, cardio and rest days, prescribed sets and weights, fast logging. No account, no server, no sync, no AI, no tracking.

TypeScript

0

4 commits

updated Oct 18, 2026

See the code

See what people are saying

SourceMessageScoreDate

I wanted a workout app that just runs Huberman's Foundational Fitness week, so I built one (and a running coach for the cardio days) (r/SideProject)

Every week I do Huberman's Foundational Fitness split: three lifting days, three cardio days (long, medium, brief) and one rest day. Every app I tried wanted me to build the program myself, sign up, or pay, so I built two that do just this. - **PlateClimb** (lifting): ships one program, the 12-week…

1

Oct 18, 2026

README

PlateClimb

The Foundational Fitness protocol as a free, offline workout app for Android and iOS.

Program tab with the program summary and the Block 1 weeks Legs day with sets, rep ranges, rest times and starting weights Workout screen with the prescribed weight pre-filled and the rest timer running Workout summary with sets, volume and an exercise breakdown Exercise detail with a photo, muscle and equipment, and a link to a form video

PlateClimb ships one program, Foundational Fitness (12 weeks), which follows the weekly structure Andrew Huberman describes in his book Protocols and on the Huberman Lab podcast: three lifting days, three cardio days and a rest and mobility day every week. Open the app and Week 1 is ready. It logs every set and pre-fills your weights, and everything stays on your phone. No account, no server, no sync, no backup, no AI, no subscription, no ads, no tracking.

For the cardio days, pair it with BaseMile, a free heart rate running coach from the same team that also runs entirely on your phone.

Install

Android: download PlateClimb-<version>.apk from the latest release and open it on your phone. Allow installs from your browser when Android asks. It needs Android 7.0 or newer.

An APK signed with the PlateClimb release key is the official build. The certificate SHA-256 fingerprint of that key is:

93:D4:21:35:71:EE:77:B1:B4:D7:B3:37:C9:54:FF:DD:FC:62:30:26:80:FC:08:C9:A9:E7:F9:F2:76:6C:5B:5F

Check it with apksigner verify --print-certs PlateClimb-<version>.apk.

iPhone: there is no App Store build. Build it from source with Xcode, see Quick start.

The program

  • 12 weeks in three parts. Block 1 (weeks 1 to 6) is heavier: compounds for 5 to 8 reps, isolations for 8 to 12. Block 2 (weeks 7 to 11) moves to higher reps. Week 12 is a week off from lifting: stay active, no weights.
  • Every week: Long cardio, Legs, Rest and mobility, Torso, Medium cardio, Intense cardio, Shoulders and Arms. Cardio and rest days show what to do (duration and effort) and have no lifts to log.
  • Every lift is prescribed: working sets, rep range, target effort (RPE), rest time, a starting weight and a short coaching note. Timed carries count seconds, and bodyweight moves have no weight to fill in.
  • Substitutions. Each exercise comes with two alternatives for when a machine is busy or missing. Swap during the workout and your history follows the exercise you actually did.

Features

  • Pre-filled weights, no surprises. The first time, a set starts at the program's starting weight. After that it starts at what you lifted last time. Nothing goes up on its own: you add weight when you are ready.
  • Fast set logging. Plus and minus steps, a rest timer with notifications, a rep counter and personal record cards.
  • Form help. Most exercises have a photo, and every one links to a form video that opens in YouTube.
  • kg or lb, with per-exercise switching and plate-sized increments.
  • Optional add-ons. Add a forearm or stretching block to any lifting day.
  • About 900 exercises in the catalog, with muscle groups, instructions and photos.
  • Fully offline. The program, your workouts and your records live in a SQLite database on the device. The only download is an exercise photo when you open an exercise.

The starting weights are a reasonable example for a trained adult, not a prescription for you. Change any weight on the first session and the app remembers it from then on.

Why it's free

I built PlateClimb to follow this protocol myself, and I think a good training plan should not sit behind a subscription. Following a fixed weekly plan, logging sets and remembering last week's weights is simple work that a phone can do offline. So the code is open, the app needs no account or server, and anyone can read it, change it and share it under the GPL.

If it helps you train consistently, that is the whole point.

Gabriel, Likwiid

Quick start

Requirements: Node 20 and npm, plus the Android SDK and a phone or emulator, or Xcode for iOS.

git clone https://github.com/likwiid/plateclimb.git
cd plateclimb
npm ci

Check that everything is in order:

npm run typecheck
npm run lint
npm test

Run on Android or iOS

PlateClimb uses native modules (notifications, SQLite), so it does not run in Expo Go. Build a development client once:

npm run android   # or: npm run ios
npm start         # starts Metro for the dev client on later sessions

On first launch the app sets up the exercise catalog and the program on the device and opens straight into Week 1. Settings, Reset All Data deletes your history and sets the program up fresh.

Privacy

PlateClimb is fully offline. There is no account, no server, no sync, no backup, no AI service and no analytics, and all your data stays on the phone. The only thing the app downloads is exercise photos, loaded from the public free-exercise-db repository on GitHub (raw.githubusercontent.com) when you open an exercise. Nothing is sent with that request, and offline a placeholder is shown instead. Tapping Watch a form video hands a YouTube link to your phone, which opens it in the YouTube app or your browser.

Architecture

PlateClimb is an Expo SDK 54 / React Native app in strict TypeScript: expo-router screens, Zustand stores and SQLite through expo-sqlite. The program data, weight pre-fill and exercise photo lookup are pure modules with unit tests.

app/              screens (Program, Settings, week, day, workout, summary, exercise)
src/data/         the bundled program, the exercise catalog and photo lookup
src/features/     program, workout, exercise, settings
src/shared/       db (schema, repositories, seeding), services, stores, UI
scripts/          build-program-data.mjs, which generates the program data

See ARCHITECTURE.md for the data model and how the program is seeded.

Roadmap

Ideas, not promises. Issues and pull requests are welcome.

  • Optional automatic progression that you switch on, for people who want the app to suggest the next weight.
  • Charts for lifts and volume over time.
  • Supersets in the workout screen (the data model already has a superset group per exercise).
  • More testing and polish on iOS.
  • Translations.

Contributing

Read CONTRIBUTING.md and the Code of Conduct. Security issues go to the address in SECURITY.md, not to public issues. Changes are listed in CHANGELOG.md.

License

PlateClimb is free software: you can redistribute it and modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version (GPL-3.0-or-later). See LICENSE for the full text. Each source file carries the SPDX identifier GPL-3.0-or-later.

As an additional permission under GPL section 7, PlateClimb may also be distributed through app stores such as the App Store and Google Play, as long as the source stays available. See APP-STORE-EXCEPTION.md.

Copyright (C) 2026 Gabriel Ghoussoub.

Credits

  • Andrew Huberman, whose book Protocols and Huberman Lab podcast describe the weekly structure of lifting, cardio and rest days that the program follows. The exercise choices, sets, reps, starting weights and notes are PlateClimb's own reading of that structure, not an official program.
  • Form videos belong to their creators on YouTube. PlateClimb only links to them.
  • free-exercise-db by yuhonas and wrkout/exercises.json, both released under the Unlicense, for the exercise catalog and photos.
  • The open source projects PlateClimb is built with, including Expo, React Native, expo-sqlite, NativeWind, Reanimated, Notifee and Zustand.

Disclaimers

PlateClimb is an independent project. It is not affiliated with or endorsed by Andrew Huberman or Huberman Lab, nor by any of the creators or projects credited above. Names are used only to describe where the weekly structure comes from.

Not medical advice. PlateClimb gives training suggestions for general fitness only. Talk to a doctor or a qualified coach before starting a new training programme, learn each lift with good form, and stop if something hurts.

Built by Likwiid

PlateClimb is built and maintained by Likwiid.

android
expo
fitness
foundational-fitness
huberman
ios
local-first
offline-first
react-native
strength-training
weightlifting
workout-tracker

likwiid/plateclimb

The Foundational Fitness protocol as a free, offline workout app for Android and iOS: 12 weeks of lifting, cardio and rest days, prescribed sets and weights, fast logging. No account, no server, no sync, no AI, no tracking.

TypeScript

0

4 commits

updated Oct 18, 2026

See the code

See what people are saying

SourceMessageScoreDate

I wanted a workout app that just runs Huberman's Foundational Fitness week, so I built one (and a running coach for the cardio days) (r/SideProject)

Every week I do Huberman's Foundational Fitness split: three lifting days, three cardio days (long, medium, brief) and one rest day. Every app I tried wanted me to build the program myself, sign up, or pay, so I built two that do just this. - **PlateClimb** (lifting): ships one program, the 12-week…

1

Oct 18, 2026

README

PlateClimb

The Foundational Fitness protocol as a free, offline workout app for Android and iOS.

Program tab with the program summary and the Block 1 weeks Legs day with sets, rep ranges, rest times and starting weights Workout screen with the prescribed weight pre-filled and the rest timer running Workout summary with sets, volume and an exercise breakdown Exercise detail with a photo, muscle and equipment, and a link to a form video

PlateClimb ships one program, Foundational Fitness (12 weeks), which follows the weekly structure Andrew Huberman describes in his book Protocols and on the Huberman Lab podcast: three lifting days, three cardio days and a rest and mobility day every week. Open the app and Week 1 is ready. It logs every set and pre-fills your weights, and everything stays on your phone. No account, no server, no sync, no backup, no AI, no subscription, no ads, no tracking.

For the cardio days, pair it with BaseMile, a free heart rate running coach from the same team that also runs entirely on your phone.

Install

Android: download PlateClimb-<version>.apk from the latest release and open it on your phone. Allow installs from your browser when Android asks. It needs Android 7.0 or newer.

An APK signed with the PlateClimb release key is the official build. The certificate SHA-256 fingerprint of that key is:

93:D4:21:35:71:EE:77:B1:B4:D7:B3:37:C9:54:FF:DD:FC:62:30:26:80:FC:08:C9:A9:E7:F9:F2:76:6C:5B:5F

Check it with apksigner verify --print-certs PlateClimb-<version>.apk.

iPhone: there is no App Store build. Build it from source with Xcode, see Quick start.

The program

  • 12 weeks in three parts. Block 1 (weeks 1 to 6) is heavier: compounds for 5 to 8 reps, isolations for 8 to 12. Block 2 (weeks 7 to 11) moves to higher reps. Week 12 is a week off from lifting: stay active, no weights.
  • Every week: Long cardio, Legs, Rest and mobility, Torso, Medium cardio, Intense cardio, Shoulders and Arms. Cardio and rest days show what to do (duration and effort) and have no lifts to log.
  • Every lift is prescribed: working sets, rep range, target effort (RPE), rest time, a starting weight and a short coaching note. Timed carries count seconds, and bodyweight moves have no weight to fill in.
  • Substitutions. Each exercise comes with two alternatives for when a machine is busy or missing. Swap during the workout and your history follows the exercise you actually did.

Features

  • Pre-filled weights, no surprises. The first time, a set starts at the program's starting weight. After that it starts at what you lifted last time. Nothing goes up on its own: you add weight when you are ready.
  • Fast set logging. Plus and minus steps, a rest timer with notifications, a rep counter and personal record cards.
  • Form help. Most exercises have a photo, and every one links to a form video that opens in YouTube.
  • kg or lb, with per-exercise switching and plate-sized increments.
  • Optional add-ons. Add a forearm or stretching block to any lifting day.
  • About 900 exercises in the catalog, with muscle groups, instructions and photos.
  • Fully offline. The program, your workouts and your records live in a SQLite database on the device. The only download is an exercise photo when you open an exercise.

The starting weights are a reasonable example for a trained adult, not a prescription for you. Change any weight on the first session and the app remembers it from then on.

Why it's free

I built PlateClimb to follow this protocol myself, and I think a good training plan should not sit behind a subscription. Following a fixed weekly plan, logging sets and remembering last week's weights is simple work that a phone can do offline. So the code is open, the app needs no account or server, and anyone can read it, change it and share it under the GPL.

If it helps you train consistently, that is the whole point.

Gabriel, Likwiid

Quick start

Requirements: Node 20 and npm, plus the Android SDK and a phone or emulator, or Xcode for iOS.

git clone https://github.com/likwiid/plateclimb.git
cd plateclimb
npm ci

Check that everything is in order:

npm run typecheck
npm run lint
npm test

Run on Android or iOS

PlateClimb uses native modules (notifications, SQLite), so it does not run in Expo Go. Build a development client once:

npm run android   # or: npm run ios
npm start         # starts Metro for the dev client on later sessions

On first launch the app sets up the exercise catalog and the program on the device and opens straight into Week 1. Settings, Reset All Data deletes your history and sets the program up fresh.

Privacy

PlateClimb is fully offline. There is no account, no server, no sync, no backup, no AI service and no analytics, and all your data stays on the phone. The only thing the app downloads is exercise photos, loaded from the public free-exercise-db repository on GitHub (raw.githubusercontent.com) when you open an exercise. Nothing is sent with that request, and offline a placeholder is shown instead. Tapping Watch a form video hands a YouTube link to your phone, which opens it in the YouTube app or your browser.

Architecture

PlateClimb is an Expo SDK 54 / React Native app in strict TypeScript: expo-router screens, Zustand stores and SQLite through expo-sqlite. The program data, weight pre-fill and exercise photo lookup are pure modules with unit tests.

app/              screens (Program, Settings, week, day, workout, summary, exercise)
src/data/         the bundled program, the exercise catalog and photo lookup
src/features/     program, workout, exercise, settings
src/shared/       db (schema, repositories, seeding), services, stores, UI
scripts/          build-program-data.mjs, which generates the program data

See ARCHITECTURE.md for the data model and how the program is seeded.

Roadmap

Ideas, not promises. Issues and pull requests are welcome.

  • Optional automatic progression that you switch on, for people who want the app to suggest the next weight.
  • Charts for lifts and volume over time.
  • Supersets in the workout screen (the data model already has a superset group per exercise).
  • More testing and polish on iOS.
  • Translations.

Contributing

Read CONTRIBUTING.md and the Code of Conduct. Security issues go to the address in SECURITY.md, not to public issues. Changes are listed in CHANGELOG.md.

License

PlateClimb is free software: you can redistribute it and modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version (GPL-3.0-or-later). See LICENSE for the full text. Each source file carries the SPDX identifier GPL-3.0-or-later.

As an additional permission under GPL section 7, PlateClimb may also be distributed through app stores such as the App Store and Google Play, as long as the source stays available. See APP-STORE-EXCEPTION.md.

Copyright (C) 2026 Gabriel Ghoussoub.

Credits

  • Andrew Huberman, whose book Protocols and Huberman Lab podcast describe the weekly structure of lifting, cardio and rest days that the program follows. The exercise choices, sets, reps, starting weights and notes are PlateClimb's own reading of that structure, not an official program.
  • Form videos belong to their creators on YouTube. PlateClimb only links to them.
  • free-exercise-db by yuhonas and wrkout/exercises.json, both released under the Unlicense, for the exercise catalog and photos.
  • The open source projects PlateClimb is built with, including Expo, React Native, expo-sqlite, NativeWind, Reanimated, Notifee and Zustand.

Disclaimers

PlateClimb is an independent project. It is not affiliated with or endorsed by Andrew Huberman or Huberman Lab, nor by any of the creators or projects credited above. Names are used only to describe where the weekly structure comes from.

Not medical advice. PlateClimb gives training suggestions for general fitness only. Talk to a doctor or a qualified coach before starting a new training programme, learn each lift with good form, and stop if something hurts.

Built by Likwiid

PlateClimb is built and maintained by Likwiid.

android
expo
fitness
foundational-fitness
huberman
ios
local-first
offline-first
react-native
strength-training
weightlifting
workout-tracker