BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
Block periodization for your one main lift.
Sports & fitnessTypeScript · JavaScriptGitHub @beSaifOnlineOwner 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 ↗This started as a program for me and my bench press: one lift, a block of sessions, a number that had to go up. Then a friend asked to use it, so it got sign-in. Then more friends asked, and most of them didn't want to live on bench alone, so it grew a Balanced mode for general training. Now you pick: a balanced routine, or one main lift you want to push as far as it goes. Either way Dot, the little mascot, plans your next session, nags you about the weigh-in, and falls asleep if you don't show up for five days.
Try it: workout.codesaif.dev. Sign in with Google, add it to your home screen.
npm install
cp .env.example .env.local # fill in the Google OAuth client and a KV store
npm run dev # http://localhost:3000
The variables are listed in docs/DEPLOY.md. Without a KV store nothing
persists; .claude/skills/screenshot shows how to run the pages against mocked data instead.
Next.js (App Router) on Vercel, Auth.js with Google, Vercel KV for everything synced, and one
cron job for reminders. The Vercel integration deploys main on every push.