Skip to main content

Bring an existing program with you

Getting started
01Read

The moment that pushed me into building Rackd was small. I switched up my training and tried to swap an exercise in the gym app I was using, and it wanted a subscription for that. So when I built the import flow, the rule was simple: if you already have a program written down somewhere, you should be able to bring it with you and run it today.

Where the import lives

Open Rackd, head into Settings, and tap Import program. Pick a JSON file from Files, iCloud Drive, or Google Drive. The app reads it, shows a preview of what it found, and waits for you to confirm before anything is added to My Rack.

If you are coming from a spreadsheet, you do not need to convert it by hand. Paste the columns into any AI assistant and ask for the Simple format described below. It is forgiving by design.

What format is supported

Two shapes, both JSON.

  • Simple. Exercise names, sets, reps, basic week structure. Good for copying a program out of a book, a coach PDF, or a notes app. Defaults fill in the rest: rest periods, warmup ramp, progression rule.
  • Advanced. Full ProgramDefinitionV2 with day types, progression systems, per-exercise scoping, alternate exercises. Good for power users who want every knob exposed, or who exported a program from another lifter using Rackd.

Export the blank template from Settings to see the exact schema. Filling in the template by hand takes about ten minutes for a typical 4-day program.

The exercise name match

Rackd does not need exercise names to be perfect. The catalog has 453 lifts and the matcher runs in four passes: manual review, exact name, alias, and fuzzy. "Bench" finds Barbell Bench Press. "RDL" finds Romanian Deadlift. Anything the matcher cannot place is created as a custom exercise so the import never fails halfway. You can rename or merge those later.

Common quirks

  • Programs that progress on percentages of a 1RM need a training max set first. Rackd will prompt for it on the first session, so the import itself does not block.
  • Supersets and circuits import as grouped exercises with shared rest. If your source uses a different superset notation, the preview screen flags it before you commit.
  • Week-to-week deload patterns from 5/3/1 style programs are recognised by name, but custom deloads need an Advanced JSON entry.

Confirm the preview, tap Add to Rack, and the program is yours. Show up and lift.