Skip to main content
Back to products

EsportsHub

The esports platform ready to wear your club's colours.

Public website, role-based management portal and integrated Discord bot, with VentuBot answering your community in 9 languages. In production with a real club since 2026.

35k
lines of code
9
languages
6
official games
19
database tables
600+
automated tests
EsportsHub public home page on a laptop, with interactive hero and matches
EsportsHub public home page on a phone
EsportsHub management portal dashboard on a laptop
EsportsHub management portal dashboard on a phone

One platform, three connected layers

A public website for fans and sponsors, a private portal for players and staff, and a Discord bot that ties it all together in real time.

  • Public website

    Home page with interactive hero, teams with their full roster, calendar, news and creators. Responsive design and SEO with a dynamic social image per team.

  • Role-based portal

    Full management of teams, players, calendar, news, creators, users and documents. Each role sees only what it needs.

  • Integrated Discord bot

    Match reminders, messages to the manager when a result is missing and website status monitoring. Every message arrives in the user's language.

  • Robust authentication

    Encrypted sessions, bcrypt passwords, CSRF protection, mandatory password change on first login, attempt limits and audit logging.

  • Live status

    Integration with the Twitch and YouTube APIs to detect when creators are live, with smart caching.

  • Digital signature

    Send and sign PDFs with a handwritten on-screen signature, guardian signature for minors, reminders and full traceability.

  • Brand identity

    A colour per game on every element; open roster slots take on the team's colour. Animations that respect accessibility.

  • Nine languages

    Website, portal and bot in ES, EN, FR, PT, IT, DE, NL, SV and TR, with over 900 strings per language kept in sync with the page's language attribute.

  • Competitive calendar

    Events with their matches inside, a public calendar and automatic Discord notices before and after every match.

  • AI-powered VentuBot

    A chatbot across the whole public website that answers questions about the club only, reading its database: teams, calendar, results, news and creators.

  • Automatic translation

    News and team descriptions are translated automatically into the other eight languages when created or edited. If the original changes, the translation is redone.

  • Interactive hero

    Our own 2D physics engine: match cards, games, the logo and live streams can be dragged and thrown among particles.

Six official games

Each with its own colour identity, its own roles and a dedicated public page.

  • ValorantTier 1
  • League of LegendsTier 1
  • Rocket LeagueTier 2
  • EAFC 26Tier 2
  • Rainbow SixTier 3
  • FortniteTier 3

Technical architecture

A modern stack and reasoned decisions. Every layer designed for cost, performance and maintenance.

Frontend

  • Next.js 16 with App Router
  • React 19
  • TypeScript in strict mode
  • Tailwind CSS 4
  • Our own 2D physics engine in the hero
  • 9 languages with over 900 strings each

Backend

  • Server components and 68 API routes
  • Encrypted sessions and bcrypt
  • Zod validation on critical paths
  • News in safe Markdown
  • Rate limits and CSRF tokens
  • Claude API for translation and VentuBot

Data

  • PostgreSQL 16 with Drizzle ORM
  • 19 tables and 8 typed enums
  • Multi-tenant: 12 tables with a client identifier
  • Foreign keys with controlled cascade deletes
  • Updated-at triggers
  • Versioned migrations

Infrastructure

  • Ubuntu 24.04 server with Node 22
  • Nginx and PM2
  • Let's Encrypt certificates with HSTS
  • Two environments: development and production
  • Builds on VentuHub
  • Atomic deployment with automatic rollback

Quality

  • Over 600 tests with Vitest
  • 20 end-to-end tests with Playwright
  • 67 bot tests in Python
  • Real Postgres in tests
  • ESLint with quality rules and a ratchet
  • Periodic audits with findings closed

Bot

  • Python 3.12 with discord.py
  • 2.4k lines of code
  • Messages in 9 languages
  • Two-way webhook with the website
  • Site health monitor
  • Deploys alongside the website

Distinct roles

Real permissions: a player can't touch other teams and a staff member edits only their own.

  • Admin

    Full access: users, audit log, all teams and settings.

  • Organisation

    Full operational access, without access to the audit logs.

  • Staff

    Edits players, staff and calendar for the assigned teams.

  • Player-staff

    Listed as a player and manages as staff. A dual role.

  • Player

    Read access to their team and editing of their own profile.

  • Creator

    Edits their content creator profile.

Not just a website

Engineering decisions you don't usually see, but that bring real stability and professionalism.

  • Maintenance without downtime

    Maintenance mode can be switched on from the portal: visitors see it instantly and, when it's switched off, get the site back without reloading.

  • End-to-end typed data

    A schema with 19 typed tables, real Postgres enums and reproducible migrations, with a database backup before every deployment.

  • Continuous auditing

    Nine technical audits with traceable identifiers, from code quality to production security and mobile design. Every finding closes with a change and a test.

  • Dynamic social image per team

    When a team's URL is shared, an image is generated with the game's colours, players and staff, rendered on the server.

  • Forced logout and impersonation

    The administrator can invalidate sessions instantly and log in as a user to provide support, with a visible notice and a full log.

  • AA accessibility

    Verified contrast, visible focus, full keyboard navigation and respect for the reduced-motion preference.

  • Deployment with rollback

    Every change passes lint, type checks, tests and end-to-end tests before it deploys. The server reverts to the previous version on its own if something fails.

  • Versioned changelog

    Every change is recorded with version, status and date, with a public description translated into all nine languages.

  • On-screen signature

    Visual field editor on top of the PDF, signing with mouse or finger, Discord reminders and a daily task.

  • Several clubs in one instance

    Each club is resolved by its domain and every query filters by client, with a separate cache per domain.

  • AI with a spending brake

    VentuBot reserves budget before every query: a per-minute limit, a daily quota per visitor and a global daily cap. It doesn't store conversations.

Tested on every deployment

Coverage from business logic to complete user flows. If a test fails, nothing is deployed.

600+
tests with Vitest
20
end-to-end tests
67
bot tests
81%
overall coverage
  • Authentication and session

    Login and logout, profile, encrypted session, CSRF, attempt limits and audit logging.

  • Portal entities

    Users, teams, players, calendar, matches, changelog, news and creators on real Postgres.

  • Security and GDPR

    Headers, consent, legal texts, file uploads with real type checking.

  • Several clubs

    Client resolution by domain and data isolation verified query by query.

  • Integrations

    Twitch and YouTube live status, creator statistics, documents and notifications.

  • Discord bot

    Website monitor, matches, control and commands, with pytest.

What's behind the price?

Objective figures for the project, to understand what it would cost to build from scratch and the value it delivers today.

~210 h
hours of work
Spread over around 33 active working days across public website, management portal and Discord bot, with AI-assisted development.
€115–230k
replacement cost
What it would cost to rebuild the same product at senior freelance rates (€50–70/h, 2,300–3,300 h).
€18–35k
sale value today
In production with a real club, hundreds of tests, automatic deployment, several clubs per instance and built-in AI.
× ARR
potential SaaS value
A multiple of 2 to 5 on recurring revenue if the product gains commercial traction.

The prices of the amateur plan or the full purchase only make sense once you understand the real cost of building something like this. The gap between what it costs to produce and what you pay to use it is our value proposition.

Plans for every club

From amateur clubs on a tight budget to organisations that want a platform of their own.

Basic plan

To get started

Just enough to get your club online. Designed for very small squads that are starting out.

€12/month

€199 setup fee

  • 2 teamsincluded
  • 15 usersincluded
  • 1 creatorincluded
  • Club setup and brandingincluded
  • Your own subdomainincluded
  • Hosting on our serverincluded
  • Discord bot configuredincluded
  • Email supportincluded

One-off €199 setup fee plus the monthly maintenance fee.

Amateur plan

For amateur clubs

Your competitive club with a platform of its own, without draining the treasury.

Before €39€19/month

€299 setup fee

Offer for the first three months

  • 5 teamsincluded
  • 50 usersincluded
  • 4 creatorsincluded
  • Club setup and brandingincluded
  • Your own subdomainincluded
  • Hosting on our serverincluded
  • Updates and backupsincluded
  • Discord bot and email supportincluded

One-off €299 setup fee plus the monthly fee. No commitment: cancel whenever you want.

Professional SaaS

For serious organisations

Generous capacity, priority support and your own domain for growing clubs.

Before €200€99/month

€399 setup fee

Offer for the first three months

  • 20 teamsincluded
  • 200 usersincluded
  • 15 creatorsincluded
  • Dedicated hostingincluded
  • Subdomain or your own domainincluded
  • Priority support with 99.5% SLAincluded
  • 2-hour onboarding and monitoringincluded
  • Extra customisationquoted

One-off €399 setup fee plus the monthly fee. No commitment: cancel whenever you want.

Product purchase

You want to own it

We hand over the code and you deploy it on your infrastructure. Total independence, no limits.

€19,500

one-off payment

  • Teams, users and creatorsunlimited
  • Full source codeincluded
  • Website, portal and botincluded
  • Deployment on your serverincluded
  • Technical documentationincluded
  • 4-hour onboarding and one month of supportincluded
  • 90-day warrantyincluded
  • Domain transferincluded

Flexible payment: half upfront and half on delivery. For clients who already have a technical team.

Sponsor · Limited places

We apply a discount to the plan you choose in exchange for a public testimonial and continuous product feedback. It isn't a separate plan: any of the three recurring plans works as a base.

What you get

  • Setup with a 66% discount: €65, €99 or €135
  • First three months at 50% off the monthly fee
  • Your logo on the VentuLabs sponsors page
  • A direct voice in the product roadmap

What we ask in return

  • A public testimonial, in text or video, that we can show
  • Continuous product feedback during the first six months
  • A minimum commitment of six months of real use

Limited places per active instance. The discount is applied when the sign-up is confirmed.

Full stack

Only modern, maintained tools with an active community.

  • Next.js 16
  • React 19
  • TypeScript 5
  • Tailwind CSS 4
  • Node.js 22
  • PostgreSQL 16
  • Drizzle ORM
  • PGlite in tests
  • Encrypted sessions
  • Zod
  • Safe Markdown
  • Claude API
  • PDF-lib
  • Vitest
  • Playwright
  • ESLint 9
  • Python 3.12 and discord.py
  • Nginx
  • PM2
  • Ubuntu 24.04
  • VentuHub
  • Let's Encrypt

Professional, stable, yours.

EsportsHub doesn't use templates, doesn't depend on expensive third-party services and doesn't tie you to anyone. It's a platform with a technical identity of its own that wears your club's colours.

Back to products