Skip to content

Repository files navigation

IronLog — Train. Recover. Prove it.

Android CI Android 8+ Kotlin Local first License

A native Android strength-training companion for fast logging, recovery awareness, plans, and an honest record of the work.

Website & web app · Features · Screens · Architecture · Build · Contributing

Note

IronLog is under active development and physical-device QA. The existing Android pre-alpha is available for testing; it is not a new APK from this website update.

IronLog Web preview

The website now has a separate product landing page and a local-first browser app under web/. The production addresses are the website and the web app; GitHub Pages deploys the new output only after the website workflow passes.

The August 31 website update includes:

  • The current transparent monochrome IronLog mark, lighter Lexend landing typography, Forge Fox artwork and twelve native themes shared between the page and app. Native app headings keep their heavier weight.
  • Make it yours: Lexend plus 20 locally bundled font families, Original/Light/Regular/Bold styles, and a Settings → Layout spacing slider (85–125%). Font selection is shared by the landing page, phone preview and full-screen web app. Spacing adjusts padding and gaps without zooming text or artwork. Choose Lexend + Light for the landing-page feel; defaults remain unchanged until you choose.
  • A real interactive app inside a phone frame on the landing page—not a desktop dashboard or an Android emulator. Onboarding and workouts save in this browser. Open the same app full-screen for Android Chrome or iPhone Safari; no separate account is needed.
  • Home, Plans, Log, Stats and Settings; saved onboarding, editable plans, custom exercises, notes, explicit warmup queues, resumable workouts, set editing/deletion, rest timers and plate calculation.
  • Local history, recovery estimates, Ledger progression, body measurements, photo comparison and validated backup/restore. No account, phone synchronization or browser cloud-AI backend.
  • Opaque modal sheets with keyboard focus wrapping, Escape dismissal and blocked background taps; mobile safe-area layouts and accessible numeric entry.
  • A six-paper research bibliography with limitations, separate software/font notices, and optional Home Screen installation.

Preview, not full native parity. The appearance update passes 94 unit tests, all 49 browser tests, the production build and scoped scan of 95 output files on Windows. Browser coverage includes desktop Chromium/WebKit and Pixel 7 Chrome emulation, all 21 actual font files, 320px/200%-text layouts, both spacing extremes, preference failures, shared appearance and completed workouts after switching fonts. Both supplemental origin-stopped workout checks also pass. These results do not verify physical Android/iPhone devices, installed Home Screen lifecycle or VoiceOver. See the acceptance record, native parity gaps and offline investigation.

Live deployment verified, 31 August 2026: workflow run for 974ed50 passed 85 unit tests, 29 browser tests, both supplemental offline tests, build/output checks and deployment. Pages now uses GitHub Actions and serves only the built web/dist, not the legacy README renderer. All nine phone-preview tests also passed against the public website, including embedded workout completion in Chromium, WebKit and Android Chrome emulation. The app-independent WebKit offline-emulation failure remains a diagnostic; the application gate closes its actual HTTP origin and verifies cached startup and workout persistence without it.

Workout instruction media from OpenGym is not bundled: its media notice and upstream dataset require separate reuse permission. Kotlin source, APKs and phone data are unchanged by this website update.

The deeper OpenGym feature review proposes six independently implementable Kotlin improvements: source-linked records, consistent exercise discovery, explicit note lifetimes, date-specific scheduling, atomic day copying and clearly scoped backups. It includes source-level issues to investigate, not claims that those native changes have shipped.

Run locally with Node 24:

cd web
npm ci
npm run dev

The landing page runs at http://127.0.0.1:5173/Ironlog/. See the web README for production-preview and test commands.

Built for the work between sets

IronLog keeps the main training loop fast and keeps the primary record on your device.

  • Log without friction. Active sessions support sets, load, reps, timers, exercise substitutions, progression suggestions, and resumable foreground tracking.
  • See recovery, not just history. Muscle readiness, sleep and biometric inputs, manual check-ins, and Health Connect can inform what to train next.
  • Work from a plan. Build programs, choose starter plans, save sessions back to plans, or share compatible plans through bounded QR payloads.
  • Keep an honest ledger. Streaks, XP, personal records, milestones, and Forge Fox widgets are derived from completed work.
  • Own the data. ObjectBox stores the core record locally. Explicit IronLog backup, restore, import, and export remain available; automatic Android backup is disabled for sensitive fitness and photo data.
  • Choose the intelligence. On-device and user-configured cloud AI paths are optional. The workout logger does not require an AI provider.

Animated diagram of the IronLog training loop

The current build

IronLog home screen showing the next workout and recovery overview IronLog recovery map with the front body view centered below the controls
Training command center Muscle recovery map

The July 2026 stabilization pass includes API 36 targeting, transactional workout and import writes, hardened backup/import behavior, corrected readiness and streak clocks, bounded QR decoding, centered recovery-map transforms, and release builds verified on an API 36.1 emulator and a physical Android device.

How it is built

flowchart TD
    UI["Jetpack Compose UI"] --> VM["ViewModels and UI state"]
    VM --> DOMAIN["Training, recovery, and ledger engines"]
    DOMAIN --> REPOS["Repositories"]
    REPOS --> DB[(ObjectBox)]
    REPOS --> HC["Health Connect"]
    DOMAIN --> AI["Optional local or cloud AI"]
    REPOS --> PORT["Backup, import, and export"]
    DB --> WIDGETS["Glance widgets and workers"]
Loading

The app is Kotlin-first and uses Jetpack Compose, ObjectBox, WorkManager, Health Connect, CameraX/ML Kit, Jetpack Glance, Vico, Coil, and Ktor. Java 17 is required for the Android build.

Build it locally

Requirements: Android Studio with Android SDK 36, JDK 17, and an Android 8.0+ device or emulator.

git clone https://github.com/Yannam-Builds/Ironlog.git
cd Ironlog
./gradlew testDebugUnitTest lintDebug assembleDebug

On Windows, use gradlew.bat instead of ./gradlew.

Release signing is intentionally local. Create local.properties with your own version and signing values and provide your own app/ironlog-release.jks; never reuse project-owner signing material.

version.code=1
version.name=1.0.0
signing.storePassword=your-store-password
signing.keyPassword=your-key-password

Verification status

  • :app:lintDebug passes with no errors.
  • 134 JVM tests pass.
  • Signed, minified APK and AAB builds pass with the private local signing configuration.
  • Fresh onboarding, starter-plan selection, Home, Recovery Map front/back views, muscle hit testing, and landscape recreation were smoke-tested on an API 36.1 Pixel 7 emulator.
  • The latest stable signed APK was installed on a physical device with app data preserved.

Physical-device coverage is still being expanded. See Security for private vulnerability reporting and Contributing before proposing a change.

Project status

Current priorities are broader physical-device regression testing, signing-key rotation before public store distribution, and final distribution infrastructure. The dated codebase review separates current work from historical implementation notes under docs/superpowers/.


Train. Recover. Prove it.
Built for the record you earn.

About

Local-first Android strength training: fast workout logging, recovery, plans, progress, and an honest Iron Ledger.

Topics

Resources

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages