Calistenio

Early access

Log the set you’re actually in the middle of.

Calistenio is a training log for bodyweight work. Plan the sets you mean to hit, then tick them off with the reps you really managed and how hard it felt.

The plan and the result live on the same row — which is what makes am I ready to move up? answerable later.

Free while in early access. Runs in the browser today — iOS and Android are in the store queue.

Pull sessionIn progress
Pull-UpVertical pull · reps
SetTargetActualRPELogged
1887Logged
2879Logged
38510Logged
Dead HangVertical pull · hold
SetTargetActualRPELogged
145s45s8Logged
245s37s10Logged

How it works

A session, end to end

Six steps, and only two states — in progress, or done.

  1. Start

    One tap creates the session and drops you straight into it. There's no planned state to keep tidy — a session exists because you started it.

  2. Add an exercise

    From the catalogue of bodyweight movements, with its coaching cues one tap away.

  3. Set the target

    How many sets, and what you're aiming at: reps for a dynamic exercise, seconds for a hold. The app already knows which of the two applies.

  4. Log what happened

    The reps or seconds you actually managed, optional RPE, one tap on the tick. A failed set at zero reps is a real result and records as one.

  5. Change your mind

    Swap an exercise mid-session and the slot keeps its place. Remove it and the slot frees up.

  6. Finish

    Enter how long you actually trained, and the session closes as completed.

Two sessions in a day is normal here

An AM/PM split is two sessions, not one row with two blocks in it. Sessions are ordered by timestamp, never bucketed by calendar day.

Duration is time under tension

Not start-to-finish. A session paused to answer the door isn’t twenty minutes longer for it.

Logging Tuesday on Friday is fine

The day you trained and the day you wrote it down are two different facts, and the app keeps both.

A set is reps or seconds, never both

The result can only be recorded in the same unit as the target, so the two halves of the row always compare.

Effort

How hard it felt, counted in the reps you had left

RPE is rate of perceived exertion, and here it means reps in reserve. Anything easier than four more in the tank is a warm-up, so the scale starts at 6.

  • 64 more reps in the tank
  • 73 more reps
  • 82 more reps
  • 91 more rep
  • 10Nothing left

The wording adapts to the set you’re logging. On a rep set it reads “Could have done 2 more reps.” On a hold it reads “Could have held a good bit longer.”

It’s optional on every set. Whole numbers only for now — half-steps aren’t in yet.

Exercises

27 movements, each with the cues that make it count

Not a gym app — no weights, no barbell math. Push, pull, core, squat and hinge, with a horizontal and a vertical variant of each. Tap any of them for its numbered coaching cues.

  • Horizontal push4

    Push-UpDiamond Push-UpArcher Push-UpPseudo Planche Push-Up

  • Vertical push4

    Pike Push-UpDipHandstand Push-UpHandstand Hold

  • Horizontal pull3

    Australian RowFront Lever RowFront Lever

  • Vertical pull4

    Pull-UpChin-UpMuscle-UpDead Hang

  • Core5

    PlankHollow Body HoldL-SitHanging Leg RaiseAb Wheel Rollout

  • Squat4

    Bodyweight SquatBulgarian Split SquatPistol SquatWall Sit

  • Hinge3

    Glute BridgeSingle-Leg DeadliftNordic Curl

Dynamic — worked through a range of motion, measured in reps.

Isometric* — held still, measured in seconds.

Where it runs

One codebase, three platforms, and a database that keeps your rows to itself

Web today

The browser build is live and ships to real users. iOS and Android come out of the same codebase and are in the store queue.

Your settings follow you

Theme, date format and time format are stored on the account rather than the device, so they're the same wherever you sign in. Dark mode is fully built out.

Your data is yours

Every table is protected by row-level security: you can only ever read or write your own rows, and that's enforced by the database itself rather than by application code.

Early access

What isn't built yet

This is the part most sites leave out. Everything above exists and works; everything below doesn't, and won't be pitched as though it does.

Programs, routines and progressions

Designed in full · not implemented

A progression is an ordered ladder of exercises, easiest first. A routine is a list of slots that name a progression rather than a fixed exercise. A program is an ordered rotation of routines — A/B/A/C, not a weekday calendar.

Starting a session resolves each slot to whichever rung you’re currently standing on. Moving up or back down a rung is always one deliberate tap, never automatic, with the app suggesting the move once you’ve cleared the bar.

This is what the plan-and-result-on-one-row idea is for. The logging has to be right before any of it can be.

  • An in-app timer

    Duration is typed in by hand today. The column is already shaped for a timer to accumulate into.

  • Your own exercises

    The database already stores custom movements and keeps them private to you. There's no screen for adding one yet.

  • Naming a session

    Every session currently gets a placeholder name. Routines will supply real ones.

  • Charts, stats, streaks, PRs

    Nothing analytical ships yet. The data to build it on is being recorded from day one.

  • Half-step RPE

    Whole numbers only for now — no 8.5.

Not on the roadmap at all: social, sharing, coaching, video.

Early access is open.

It’s free while it’s early. Sign up, start a session, and log the set you’re in the middle of.

Email and password. No app store required.