Case 04Full-stack media and publishing platform
Helping editors manage changing sports content
- Sports media
- Role
- Frontend, server routes, data work, editorial tooling
- Built
- I built the full-stack publishing system.
- Stack
- Nuxt
- TypeScript
- Supabase
- Server routes
- Vitest
- SEO metadata
Situation
An editorial team needed to publish fixtures and media around a tournament. Team profiles and visual assets needed frequent updates as knockout matchups changed.
The public site had to show accurate upcoming matches while protecting unpublished scores. Repeating team data across pages also made updates harder to manage.
What I built
I built a full-stack publishing system with a central team catalogue, reusable crest assets, administrative controls, and server routes for approved fixture data.
Upcoming knockout matches begin with structural placeholders. Once editors confirm the teams, a database-backed overlay updates the public matchup without exposing hidden results.
Scripts support bulk fixture updates. Server-rendered pages and structured metadata help search engines understand the content.
What changed
- Editors manage team identity and visual assets in one place.
- A crest can be reused across many fixtures.
- Upcoming matchups update without revealing unpublished scores.
- Bulk scripts reduce repeated fixture edits.
- Public pages keep a server-rendered baseline for search and sharing.
Engineering notes
The public API exposes team identity for approved matchups and leaves score data out of the response. Editorial control stays separate from what readers see.
Try the model
A knockout bracket where some matchups are confirmed and the rest are still placeholders. Editors confirm the teams, and scores stay out of what readers see.
A simplified working model of the real system. No client data.
