OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Adaptive training app for climbers. Ten climbing-performance capacities, load-based
progression, sourced protocols, testable benchmarks, form guides, rest timers and
session tracking.
Built for one athlete: 35, 62kg, 7a+, three sessions a week, home and gym.
Training model: see 7bit-handover-v10.md.
Design system: see 7bit-handoff-v9.md.
• Node.js v22+ (@capacitor/cli requires >=22, Next 16 requires >=20.9)
• Xcode (for iOS development — macOS only)
Opens the web app at http://localhost:3000.檢視完整 README ↗Adaptive training app for climbers. Ten climbing-performance capacities, load-based progression, sourced protocols, testable benchmarks, form guides, rest timers and session tracking.
Built for one athlete: 35, 62kg, 7a+, three sessions a week, home and gym.
Training model: see 7bit-handover-v10.md.
Design system: see 7bit-handoff-v9.md.
@capacitor/cli requires >=22, Next 16 requires >=20.9)npm install
npm run dev
Opens the web app at http://localhost:3000.
npm install # Install all dependencies (Next.js, React, Capacitor, etc.)
npm run build # Compile the app into static files (out/ folder)
npx cap sync ios # Copy static files in, resolve the native plugins
npx cap open ios # Open the Xcode project
In Xcode:
The first build resolves three Swift packages (status bar, splash screen,
haptics) from ios/App/CapApp-SPM/Package.swift. That takes a minute once; it
is cached afterwards.
| Bundle ID | com.sevenbit.circuittraining |
| Display name | 7Bit |
| Orientation | Portrait only |
| Devices | iPhone only |
| Deployment target | iOS 15 |
| Appearance | Light, locked — the app has no dark theme |
Native behaviour lives in src/native/native.ts: status bar styling, splash
dismissal and haptics, each behind a platform check so the same build still
runs in a browser. Screen wake during rest timers uses the Screen Wake Lock
API (src/hooks/use-wake-lock.ts) rather than a plugin, so it works in the
PWA too.
Both are drawn from public/images/logo.svg, so the home screen icon and the
in-app logo can never drift apart:
pip3 install pillow
python3 tools/generate-ios-assets.py
npm run build && npx cap sync ios
Then Cmd+R in Xcode to see the update.
No paid Apple Developer account needed for personal testing.
The main branch auto-deploys to Vercel on push. Preview deploys are created for every PR.
src/
core/ Pure TypeScript business logic (no React, shared with iOS)
types, config, engine, protocols, benchmarks, session data
storage/ Storage abstraction (localStorage now, Supabase later)
store/ Zustand state management
hooks/ React hooks (timer, swipe, audio)
components/ React components + CSS Modules
app/ Next.js app router (layout, page, globals.css)
ios/ Xcode project (generated by Capacitor)
legacy/ Original vanilla JS version (reference only)
public/ Static assets (images, manifest.json)
Next.js 16 (App Router) · TypeScript · React 19 · Zustand · Recharts · @use-gesture/react · Capacitor 8 (iOS)