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.
Widget para Notion com visão geral para times de futebol da primeira divisão.
Translation pending
Sports & fitnessHTML · JavaScriptGitHub @isabelleqgaOnlineOwner 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.
A real-time widget for Notion (or any embeddable page) showing matches, standings, position history, and recent form for a football club you pick from a dropdown — any club across 9 domestic leagues in 8 countries, via football-data.org.
1. Get the project on your PC, then from inside the folder:
(see "API Key & Security" below for how to get one)
3. Start the server:
Your server is now running at http://localhost:3000.
4. Open the widget — visit http://localhost:3000/widget, or open widget.html directly in your browser.
Pick one, then point widget.html's backendUrl constant at it.Read the full README ↗A real-time widget for Notion (or any embeddable page) showing matches, standings, position history, and recent form for a football club you pick from a dropdown — any club across 9 domestic leagues in 8 countries, via football-data.org.
| File | Purpose |
|---|---|
server.js | Backend Node.js server — proxies API calls, hides your API key |
widget.html | Frontend Notion widget — self-contained, no build step |
package.json | Node.js dependencies |
.env.example | Environment variables template |
npm install
.env file:
cp .env.example .env
Then edit it:
PORT=3000
API_KEY=your_football_data_org_api_key_here
(see "API Key & Security" below for how to get one)npm start
# or, with auto-reload during development:
npm run dev
Your server is now running at http://localhost:3000.http://localhost:3000/widget, or open widget.html directly in your browser.Pick one, then point widget.html's backendUrl constant at it.
http://localhost:3000const backendUrl = 'http://localhost:3000'; in widget.htmlhttps://your-replit-name.replit.dev)const backendUrl = 'https://your-replit-name.replit.dev'; in widget.htmlAPI_KEY (see "API Key & Security" below)backendUrl in widget.html, then push to redeployVercel serves the widget page itself too, at <your-vercel-url>/widget — so this is the only option here where you don't need to separately host the frontend. See "Using the Widget" below for embedding that URL directly in Notion instead of copy-pasting HTML.
backendUrl in widget.htmlLocally: start the server (npm start), open the widget, and pick a country then a club from the dropdowns.
In Notion, pick one:
<your-vercel-url>/widget. Notion loads it in an iframe — nothing to copy or re-paste after future changes, since it always reflects whatever's currently deployed.backendUrl in widget.html to your deployed backend's URLwidget.html fileEither way: pick a club — your choice is remembered in that browser for next time, and the selector hides itself automatically after that (click "Change club" to bring it back)
.env file (see .env.example) — it's read only on the backend and never sent to the browser.env is gitignored — never commit it or share it publiclylocalStorage); the country/club dropdowns can be hidden once you've picked a club (they default to hidden after that) and reopened anytime via the "Change club" linkThe exact roster depends on football-data.org's current season data (promotions, relegations, name changes will shift this over time) — this is what's selectable today. Any of these clubs that's also in the Champions League this season gets the extra Champions League section automatically.
| Problem | Fix |
|---|---|
| "Cannot GET /" | Backend isn't running — run npm start |
| "Failed to fetch" / "Could not reach the backend" | Check backendUrl in widget.html; make sure the backend is running; check the browser console for errors |
| Port already in use | Change PORT in .env, or stop whatever else is using it |
| Data not updating, or the dropdowns stay empty | Check your API key in .env; verify your internet connection; check the browser console |
| Occasional "Failed to fetch" while switching clubs quickly | Expected — the free football-data.org tier allows only 10 requests/minute. Wait a few seconds and try again |
Still stuck? Open the browser console (F12) for detailed error messages.