An independent, bilingual football media platform — news, a match archive and a community — built self-owned after the Instagram project it grew from was discontinued.

Overview
Gavi Corner is an independent, bilingual (English/Spanish) football media platform — news, a match archive, a training-session media archive, fan-made video edits and a community leaderboard — built starting around September/October 2025 after the Instagram project it grew out of was discontinued and rebranded over registration and naming concerns. It is not affiliated with FC Barcelona, Gavi, La Liga or the RFEF.
Problem
A community built on someone else's platform is only ever borrowed, not owned — and naming and registration issues around the original Instagram project made that fragility concrete. I wanted a real, self-owned home this time — my own database, my own publishing tools, my own domain — instead of rebuilding the same setup on rented ground again.
Approach
The public site is deliberately framework-free — hand-written HTML/CSS/vanilla JS, deployed by direct upload — so there's no build pipeline standing between an editorial decision and it going live. Everything that needed real infrastructure runs on Supabase: PostgREST for data access, Row Level Security gating who can read and write what, scheduled Edge Functions syncing fixtures and standings from football-data.org, Supabase Realtime powering the live shoutbox, and Resend handling transactional email. A service worker adds a layer of offline resilience on top of the plain HTML/CSS/JS frontend. Because the site covers a real, well-known athlete, it also has a genuine rights-compliance layer built in from day one: subject media is blurred sitewide by default while formal licensing is pursued, with an admin-only override to review the real media.
Engineering
- Bilingual (EN/ES) news, match archive and training-session media, with i18n handled by hand rather than a framework
- A Match Center with pitch diagrams, x/y lineup coordinates, a match timeline and live-score polling — with explicit safeguards against presenting guessed lineups as confirmed fact, countdown/lock behavior around kickoff, a fixture queue for what's next, and special-case handling for tournament fixtures like the World Cup
- Fixture and standings sync via scheduled Edge Functions pulling from football-data.org
- Fan-made video edit archive with an in-browser export tool that adds a watermark before download
- Admin publishing tools with a draft → approve review gate before anything goes live, including an Instagram-to-news import workflow
- Community layer — accounts, moderated comments, badges and a points leaderboard, backed by realtime Supabase Edge Functions for the shoutbox and comment notifications, with Resend handling outbound email
- Sitewide rights-compliance blur system for subject media, plus a formal takedown-request workflow
Result / Current State
Live at gavicorner.com and in active daily use through its own admin publishing tools. Rights clearance with the relevant parties is an ongoing, mid-process effort, and media handling is built to stay conservative by default while that continues.
What I Learned
The hardest problems weren't UI problems. Serving video responsibly at scale without a framework meant hand-building a real fallback pipeline — optimized file first, raw file as backup. The Match Center's live element — polling scores and rendering lineups before they're officially confirmed — needed real safeguards so a guessed starting XI is never shown as fact, which shaped the countdown/lock logic around kickoff. And because the site is about a real public figure, media handling had to ship with an actual legal-compliance mechanism from day one rather than something bolted on later.






