Web platform

The Real PCL: a web platform for a corporate cricket league

therealpcl.com is the site of the Pakistan Corporate League, a corporate T20 cricket league in Lahore. It combines public pages for players, teams, tournaments and editions with online player registration and a dashboard where captains and managers nominate their squads.

The Real PCL home page: the Pakistan Corporate League's T20 platform, with Join the League and Watch Highlights buttons

The challenge

A league has several audiences that need the same data. Players want to register and keep a profile, captains and managers need to submit a squad for every edition, and followers want to look up teams, players and past tournaments.

All of it lives in the league's API, so the site had to present it publicly, fast and indexable, while giving signed-in players and captains the tools to change it.

Our approach

  • Public pages from the league's data

    Players, teams, tournaments, editions and a hall of fame are rendered on the server from the league API and refreshed every 12 hours. Old numeric URLs redirect permanently to readable slugs.

  • Registration online

    A detailed player registration form covers playing role, batting and bowling style, kit details, team and the upcoming edition. Profile photos are compressed in the browser before they're uploaded.

  • A squad dashboard for captains and managers

    Players sign in. Captains and managers add players to their team for an edition, set captain, manager and kit details, and can copy a squad from a previous edition.

  • Tournament-day tools

    A live and recorded video feed from the league's YouTube channel is fetched server-side, and an internal pool-draw tool assigns an edition's teams to pools and saves the result.

Architecture

Front end
Next.js 16 App Router and React 19, with Ant Design 5 components and TanStack Query for the signed-in pages.
API
The league's Laravel API, with bearer tokens. Public pages call it from the server; signed-in requests go through small server-side routes that forward the player's token.
Sign-in
Players sign in against the API, the session is checked when the dashboard loads, and an expired token sends the player back to the sign-in page.
Search and sharing
A sitemap built from the API for players, teams, tournaments and posts, sports-specific structured data (SportsOrganization, SportsEvent, SportsTeam, Person), and a www-to-bare-domain redirect.
Security
A content security policy, HSTS, frame and permissions policies, and blog HTML sanitised before it's rendered.
  1. People

    • Public pages

      Players, teams, tournaments, editions

    • Player dashboard

      Profile, squads, nominations

  2. Next.js

    • Server rendering

      Public pages cached for 12 hours

    • Server routes

      Forward the signed-in player's token

  3. Services

    • League API (Laravel)

      Players, teams, editions, nominations

    • YouTube Data API

      Live and recorded matches

Where it stands

  • Live at therealpcl.com

    The public site, registration and the captains' dashboard run on one Next.js app.

  • One source of truth

    Public pages and the dashboard read and write the same league API, so a squad change shows up on the team's page without a second copy of the data.

Built with

  • Next.js 16
  • React 19
  • Ant Design 5
  • TanStack Query
  • Tailwind CSS
  • Laravel API
  • YouTube Data API

Have a problem like this one?

A few lines is enough. We'll ask the right questions on the call.

  1. We reply within one working day

    By email or WhatsApp, whichever you prefer.

  2. A short call

    To understand the goal, the people who'll use it and any deadline.

  3. A written scope and estimate

    Before any work starts, so you know what you're agreeing to.

So we can reply on WhatsApp if you prefer.

What are you building, who is it for, and is there a deadline?

We reply within one working day. By sending this you agree that Teknoesis (Lahore, Pakistan) may contact you about your request and store your details as described in our Privacy Policy. We use analytics tools; see Your Privacy Choices in the footer.