abelcastro.dev

Re‑building Sports Dashboard: From Angular + REST to Next.js + GraphQL

2025-05-07

TypeScriptNext.jsGraphQL

1. Looking back

End 2023 I introduced the first version Sports Dashboard, a minimal web app that tracks the latest results and league tables for Europe’s top football competitions. If you missed that origin story, catch up here.

That version used Angular 16 and a simple Django/REST API. It worked, but I quickly stopped enjoying working with Angular. So I decided to rebuild the project using tools I actually want to use.

2. Why rebuild?

Main reasons:

  • I wanted to stop using Angular.
  • I was learning Next.js 15 and wanted to go deeper.
  • I wanted to own the full stack of a GraphQL API.
  • I wanted to stop self-hosting and intentionally accept vendor lock-in with Vercel.

3. Wins & learnings

GraphQL turned out to be a great match for football data. One query can fetch standings, match results and team info in a single request—no overfetching.

4. The new version

Here the new URL: http://sports-dashboard.abelcastro.dev. The code is also publicly available here.