Client, workout and session log for independent personal trainers — iPhone and Apple Watch.
Sports & fitnessSwift · ShellGitHub @madacgravOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Rackside is a client and session log for independent personal trainers, on iPhone and Apple Watch. Keep clients' goals, injuries, health screening, assessments and waivers in one place; build reusable workouts; schedule and record sessions set by set with a rest timer on your phone or wrist; and track each client's progress over time. Everything stays on the iPhone — no account, no cloud, no tracking.
For developers: product requirements in PRD.md; roadmap and known gaps in BACKLOG.md.
The Xcode project file is generated, not committed. The project is defined by
project.yml; XcodeGen
turns it into Rackside.xcodeproj.
After a fresh clone — or whenever files are added/removed outside Xcode — run:
brew install xcodegen # first time only
xcodegen generate
open Rackside.xcodeproj
Then select the Rackside scheme, pick an iPhone simulator, and ⌘R.
xcodegen generate
xcodebuild -scheme Rackside -destination 'platform=iOS Simulator,name=iPhone 17' test
If xcodebuild complains that it "requires Xcode" even though Xcode is installed,
either prefix commands with DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
or run once:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Notifications and calendar access are optional. Settings → Permissions shows the current status of each and offers an Open Settings link when one has been denied. Session reminders (24 h and 1 h before) are scheduled only while notifications are allowed; "Add to calendar" on a session needs full calendar access and falls back to the first writable calendar when no default is set.
Continuous integration runs xcodegen generate and the simulator test suite on every
pull request (.github/workflows/ci.yml).
Sources/Models/ — SwiftData @Model types and their Codable DTOsSources/Persistence/ — @ModelActor repositories, seed import, store backupSources/Services/ — notifications, messaging, EventKit calendar, PDF reports, export/import archive, app lockSources/Support/ — shared helpers (logging, formatters)Sources/Support/Theme.swift — color/font/spacing tokens (colorsets live in Sources/Assets.xcassets); Sources/Features/Components/ — shared SwiftUI building blocksSources/Features/ — SwiftUI views + view models per feature (Schedule, Clients, Workouts, Exercises, Session, Reports, Settings)Sources/AppIcon.icon/ — Icon Composer package (edit icon.json/Assets/*.svg as text, or open in Icon Composer); Sources/Assets.xcassets/ holds AccentColorTests/ — Swift Testing suite (runs against in-memory containers); Tests/Fixtures/export-v1.json is the frozen export-format compatibility fixture — never regenerate itWatch/ — Apple Watch app (rest timer mirror and quick start); Shared/ — timer and sync code used by both appsdocs/ — GitHub Pages site: user guide, privacy policy, support, changelog; docs/app-store/ — App Store submission kit and screenshotsscripts/ — screenshots.sh (regenerates App Store/guide screenshots from DEBUG demo data via -demoData), sync-changelog.sh, and doc checksthoughts/qrspi/ — design/research/plan artifacts from the initial build