Android app · in progress
Megin
A training and habits app for one person: me. It logs workouts, water and the habits of the day, and reads the previous sessions to suggest the load for the next one.
What it does
- Today
- The day at a glance: the workout in progress, water against a goal set from body weight, and the habits still open.
- Workout
- Sets logged with two steppers, kg and reps, and the effort beside each one, in reps in reserve (RIR). Every exercise has its demonstration GIF a tap away.
- Habits
- Daily habits with an optional goal, like 20 pages or 10 minutes, the current streak and a week grid.
- Report
- Body weight over time, volume per week and the next workout, with the suggested load for each exercise.
Screens

Sign in 
Today 
Workout in progress 
Exercise picker 
Habits 
Report
The load suggestion
For each strength exercise the app looks at the last two sessions. If every set reached the top of the rep range, it suggests adding the exercise's increment. If the reps fell more than three below the target, it suggests reviewing the form before adding weight. Otherwise, it keeps the load. It is a SQL view, so the rule is the same on every screen that shows it.
Decisions
- The 1,324-exercise catalogue ships inside the app (0.4 MB), not in the database. It is public data, the same for everyone, so searching it should not need the network.
- Screens never talk to Supabase. Every query lives in one hook per domain, so changing a chart or adding an export touches one place.
- Sign-up and password reset use a 6-digit code instead of a link. A link has to find its way back into the app, and fails silently when the email is opened on a computer.
- Row-level security on every table, and account deletion from inside the app, as Google Play and Brazil's data protection law (LGPD) require.