← Back to Portfolio

NextRep

オフラインファーストの筋トレ記録 PWA。入力の手間を最小化しつつ、RPE に基づく次回トレーニングの自動負荷提案を提供する。

Features

ワークアウト記録

重量・レップ数・RPE・セット種別を素早く記録。過去のデータから入力を自動補完。

Progressive Overload エンジン

RPE(主観的運動強度)に基づく自動負荷調整提案。トレーニング科学に基づくアルゴリズム。

入力の自動補完

過去のトレーニングデータから重量・レップ数・RPE を自動プリフィル。記録の手間を最小化。

アナリティクス

ボリューム推移チャート・コントリビューションカレンダー等でトレーニングの進捗を可視化。

Google Drive バックアップ

ユーザー自身の Google Drive にデータをバックアップ。LWW 方式の競合解決で安全に同期。

完全オフライン対応

PWA としてインストール可能。電波の悪いジムの地下でも問題なく使用可能。

Tech Stack

FrontendReact 19 + TypeScript + Vite
RoutingTanStack Router
StylingTailwind CSS
StateZustand + Dexie React Hooks
Local DBDexie.js (IndexedDB)
PWAvite-plugin-pwa
DeployCloudflare Pages

Design Decisions

オフラインファースト設計

IndexedDB (Dexie.js) をプライマリストレージに採用。ジムの地下等の電波が悪い環境を想定し、ネットワーク接続に依存しないアーキテクチャを設計。すべての操作がローカルで完結する。

プライバシーファースト — サーバーレス

バックアップ先としてユーザー自身の Google Drive を採用。個人のトレーニングデータを第三者のサーバーに保存しない設計により、プライバシーを確保しつつバックエンドコストをゼロに。

RPE ベースの Progressive Overload エンジン

トレーニング科学に基づき、RPE(主観的運動強度)から次回のトレーニング負荷を自動計算。単純な重量増加ではなく、疲労度を考慮した適切な負荷提案を実現。