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.
Real-data athletics rankings and podium predictions across all 32 disciplines, trained on results scraped from World Athletics. Next up: the Ultimate Championship in Budapest.
Sports & fitnessTypeScript · HTMLGitHub @rh16ndOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
The frontend of PodiumCall: a website that predicts the podium for every discipline at the 2026 Wanda Diamond League Final. It draws the predictions, standings, and athlete analytics that come from the Python API in a separate repo, athletics-predictor.
A read-only React app. Every number on it (podium probabilities, qualifying standings, head-to-head records, season form) is fetched live from the API. The frontend works nothing out for itself and stores no data of its own. It predicts podium membership (top 3), not the winner.Read the full README ↗The frontend of PodiumCall: a website that predicts the podium for every discipline at the 2026 Wanda Diamond League Final. It draws the predictions, standings, and athlete analytics that come from the Python API in a separate repo, athletics-predictor.
Live: https://podiumcall.vercel.app
A read-only React app. Every number on it (podium probabilities, qualifying standings, head-to-head records, season form) is fetched live from the API. The frontend works nothing out for itself and stores no data of its own. It predicts podium membership (top 3), not the winner.
Landing · Dashboard (the surest calls) · Track & Field (per-discipline tables) · Discipline detail (field depth + head-to-head) · Athlete profile (career, form, rivalries) · Qualifying (DL standings vs the cut) · Stats (performance index) · Projections · Schedule.
You'll need Node.js and the API running (see the athletics-predictor repo).
npm install
npm run dev # http://localhost:8080
By default the app calls the API at http://localhost:5000. To point it somewhere else, use an env var (below).
All of these are optional and get baked in at build time (VITE_*), so changing one means a redeploy. Copy .env.example to .env.local to set them locally.
| Var | Purpose |
|---|---|
VITE_API_BASE_URL | Where the API lives (default http://localhost:5000) |
VITE_SITE_URL | The site's public origin. Turns on canonical URLs, JSON-LD, and the sitemap |
VITE_GOOGLE_SITE_VERIFICATION | Renders the Search Console verification tag |
Auto-deploys from main. Two things here are specific to Vercel:
NITRO_PRESET=vercel has to be set as an env var. The platform overrides the nitro build target in vite.config.ts, and this env var is what actually picks the Vercel output.vercel.json holds the security headers and the Content-Security-Policy. (public/_headers is Cloudflare-only, and Vercel ignores it.) The CSP is a whitelist, so any new external origin (a new font, an image host, analytics, a moved API) has to be added there or the browser blocks it.DESIGN.md (the "Track at Golden Hour" tokens and rules)Not affiliated with World Athletics or the Wanda Diamond League.