VANTAG
ESContact

In-house project · eSports club platform

xFive Club

  • Next.js
  • Supabase
  • eSports
  • i18n
  • SEO
  • GEO

What we did

xFive Club is a Spanish eSports club and content creator community (teams, competition, streamers). This isn’t a showcase site: it’s a platform driven by live data (matches, results, rosters, creators, news) that updates through an admin panel and grows in phases.

It’s an in-house project, and we treat it as one. We build and operate it: Next.js architecture, Supabase database, deployment on Vercel, ES/EN internationalization, technical SEO and ongoing maintenance as the club adds competitions, teams and content.

Blocks we operate:

  • Next.js platform deployed on Vercel, with server-side rendering and prerendered pages so content loads fast and stays indexable.
  • Supabase database (PostgreSQL) as the source of truth for teams, matches, results, creators and news. The calendar and scores are served from structured data, not laid out by hand.
  • ES/EN internationalization with properly resolved hreflang (es, en, x-default) and per-language og:locale. Every piece of content exists in both versions without duplicating URLs or cannibalizing rankings.
  • Club modules: teams with rosters, match calendar with a live countdown, latest results linked to their VOD, creator/streamer profiles, a news blog and YouTube channel integration.
  • Shop / merchandising integrated into the same platform, consistent with the club’s brand.
  • Technical SEO and GEO: per-page metadata, full Open Graph, and a structure built so the club’s content (teams, results, news) is citable by Google and by generative engines like ChatGPT, Perplexity and Gemini.

How we built it

Stack: Next.js (React) with a PostgreSQL database on Supabase, deployed on Vercel. Images optimized with next/image. Native ES/EN internationalization.

Technical decisions that shape the project:

  • Next.js on Vercel, not a heavy CMS. An eSports club runs on data that changes daily (matches, results, rankings). Serving it from an SSR + prerender app gives better performance and control than a WordPress loaded with plugins.
  • Supabase as the backend. Managed PostgreSQL for teams, matches, creators and news. Adding a competition, a result or a player means updating data, not touching templates. That’s what lets the site grow in phases without rebuilding it.
  • Live data. The next match shows a real-time countdown; results link to their VOD. Dynamic content is loaded from the database, not hardcoded.
  • Real i18n. Two languages (ES/EN) with correct hreflang and og:locale, so each version ranks in its own market with no duplicate-content conflicts.
  • Performance. WebP images served through next/image with srcset, prerendered pages, assets on Vercel’s CDN. The goal is green Core Web Vitals even on pages with embedded video and results tables.
  • Phased growth. Phase 1 is live. The architecture (data in Supabase, reusable Next.js components) is designed to add games, competitions and modules without rewriting the foundation.

What we didn’t do

  • We didn’t build a WordPress site with a page builder. For a platform with live data and phased growth, a plugin-heavy CMS would have cost performance and flexibility.
  • We didn’t hardcode the club’s content. Matches, results, rosters and news live in the database: they’re updated as data, not by editing templates.