| 1 |
# ripgrow |
| 2 |
|
| 3 |
A ratatui TUI for programming and tracking resistance-training workouts. You |
| 4 |
build a library of exercise templates, log each session's sets, and the app |
| 5 |
generates the next workout as a printable PDF using progression rules over your |
| 6 |
history and a self-reported readiness map. |
| 7 |
|
| 8 |
Two intended users, one binary: |
| 9 |
|
| 10 |
- Solo lifter. One profile, one SQLite file, log-then-generate. |
| 11 |
- Personal trainer. Multiple profiles side by side, one per client. Delivery |
| 12 |
is a texted PDF; clients never touch ripgrow. |
| 13 |
|
| 14 |
## Crates |
| 15 |
|
| 16 |
- `ripgrow-core` — data model, schema migrations, progression state machine. |
| 17 |
- `ripgrow-tui` — ratatui frontend, ships the `ripgrow` binary. |
| 18 |
|
| 19 |
## Storage |
| 20 |
|
| 21 |
One SQLite file per profile at |
| 22 |
`~/Library/Application Support/ripgrow/profiles/<name>.db`. Design detail |
| 23 |
lives in the internal design notes. |
| 24 |
|
| 25 |
## Migrations |
| 26 |
|
| 27 |
`rusqlite` bundled + `PRAGMA user_version` as the version tracker, matching |
| 28 |
the audiofiles pattern. Migration steps are embedded SQL in `ripgrow-core`. |
| 29 |
|
| 30 |
## Build |
| 31 |
|
| 32 |
Target `aarch64-apple-darwin` only, built on mbp. No cross-compilation. |
| 33 |
|
| 34 |
``` |
| 35 |
cargo build --release |
| 36 |
``` |
| 37 |
|
| 38 |
## License |
| 39 |
|
| 40 |
MIT. |
| 41 |
|