A feature-rich Chrome extension for real-time FC Barcelona scores, fixtures, standings, and more β in pure Blaugrana style.
ok i want to confess something β most of the time when i make something i don't really interact with you. yes, you. this makes my whole profile feel very robotic, no personality or soul, while it may seem like it, but that's not the case. i've realised all i want is perfection and that comes with a cost β the cost of having no soul, no personality.
so here it is. i made this because (a) i love barΓ§a and (b) i was bored at home. i hope at least one person finds it useful, and even if you don't β honestly it doesn't matter. i've been building stuff for so long but always felt like i didn't put any personality into it. so that's why i'm writing this, as a message to myself: put yourself out there no matter how much this world will clown you for it. peace. βοΈ
| Feature | Description | |
|---|---|---|
| π‘ | Live Score | Real-time score, match minute, and status pill (LIVE / HT / FT) with auto-refresh |
| β½ | Goal Events | In-popup animated toast + live event strip showing goalscorers, OGs, and penalties |
| π₯ | Card Events | Yellow |
| π | Venue & Referee | Stadium name and referee shown on the live card |
| π | Starting XI | Tap "Lineup βΌ" during a live match to expand both teams' starting elevens |
| π | Upcoming Fixtures | Next scheduled matches with countdown timer and H/A indicator |
| π | Recent Results | Last results with score, W/D/L badge, and "Show more" to expand up to 20 |
| π | La Liga Standings | BarΓ§a's current La Liga position, played/won/drawn/lost/points |
| π | UCL Standings | Champions League standing with a La Liga / UCL tab switcher |
| β½ | Top Scorers | BarΓ§a's top 5 La Liga goalscorers for the season |
| π | Form Guide | Recent form dots (W/D/L) calculated from last results |
| π | Competition Filter | Filter fixtures and results by competition (La Liga, UCL, Copaβ¦) from the βοΈ settings panel |
| π | Smart Notifications | Background push notifications for kick-off, half time, full time, goals β individually toggleable |
| β° | Pre-Match Alarm | Notification 15 minutes before kick-off |
| π | Clickable Rows | Click any fixture or result to open a Google search for that match |
| β‘ | Rate-Limit Safe Cache | API responses cached for 60 seconds β popup opens are instant and never hit your rate limit |
This extension uses the free football-data.org API.
Free tier: 10 requests/minute β the extension is designed to stay well within this limit via response caching.
-
Sign up at football-data.org and copy your API key from the dashboard.
-
Create
config.jsin the extension directory:// config.js export const API_KEY = 'YOUR_API_KEY_HERE';
-
config.jsis in.gitignoreβ it will never be committed to your repo. Keep your key private. -
Reload the extension at
chrome://extensions/after adding the file.
If you see a "Could not load data" or "API key missing" error in the popup, click "See why β" which links directly here.
- Download the ZIP and extract it.
- Open Chrome and navigate to:
chrome://extensions/ - Enable Developer Mode (top-right toggle).
- Click "Load unpacked" and select the extracted folder.
- The BarΓ§a crest π΅π΄ appears in your toolbar β you're done.
- Any Chromium-based browser (Chrome, Edge, Brave, Arc, etc.)
- A free football-data.org API key
| Problem | Likely cause | Fix |
|---|---|---|
| "API key missing or invalid" | config.js missing or wrong key |
Re-check API Key Setup |
| Data not updating | Rate limited (> 10 req/min) | Wait 60 s, the cache will expire and retry |
| UCL standings empty | BarΓ§a not currently in a UCL group stage | Expected β only shows when data is available |
| Lineup not showing | API doesn't return lineups until closer to kick-off | Check back nearer match time |
Architecture:
manifest.jsonβ MV3 extension manifestpopup.html / popup.css / popup.jsβ the extension popup UIbackground.jsβ service worker for background polling and push notificationssettings.jsβ shared notification preference helpers (chrome.storage.local)config.jsβ your API key (not committed, gitignored)
- Fork the repository
- Create your feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Open a Pull Request
MIT License β see LICENSE for details.


