---
title: "The Pavilion case study · Anirudh Goel"
description: "The Pavilion is a personal IPL 2026 dashboard: you pick a team on the way in and the whole thing floods in its colours."
canonical: https://anirudhgoel.xyz/projects/the-pavilion
updated: 2026-10-31
site: "Anirudh Goel"
language: en
---

# The Pavilion

IPL 2026 in your team's colours. Standings, fixtures, squads, and a pass made for Instagram.

[See it live ↗](https://pavilion.anirudhgoel.xyz/)

- Industry

  Cricket

- Year

  2026

- Role

  Design and build (personal project)

- Built with

  Cloudflare Workers

![The team picker on a laptop: Who do you live and die for? over ten jerseys, RCB chosen, the page flooded in its red with a large jersey behind the heading.](https://anirudhgoel.xyz/_astro/onb-team-desktop.B3DdRFAB_1rqayg.webp)

![The dashboard on a phone: the black broadcast header and ticker, then the cream mast with Good morning, Anirudh, RCB! RCB! and a red Download Pass button.](https://anirudhgoel.xyz/_astro/dashboard-phone.BvUzil0k_1cSdQm.webp)

The Pavilion is a personal IPL 2026 dashboard. You pick a team on the way in and the whole thing floods in its colours: in season, a countdown to your next match and a live scorecard when your team was on the field; the points table with your row lit, all 74 fixtures, squads, and four dressing-room stories per team. It went live on 22 April 2026, a day after the first line of code, with a custom domain the day after that.

## The Pavilion, in numbers.

### The Pavilion Pass

1. Instagram views the pass carried, during the season**90,000+**
2. Pixels in each pass, drawn on a canvas in the browser**1080 × 1920**
3. Teams in the batch export, saved as one ZIP**10**

A share link pre-selects your team for the friend who opens it.

**1 day**from the first line of code to live, on 22 April 2026

**74**fixtures, filtered to your team, results in one column

**No account**your name and team never leave your browser

**10 days**at the end of the season the site ran itself

**4 stories**per team, dated, with a check that flags a stale one

## The brief

The look is Wisden almanac typography on cream paper inside a black broadcast sandwich, with the team colours doing the work. Vanilla HTML, CSS and ES modules, no framework, and no backend for anything personal: your name and team never leave your browser. Standings, fixtures, caps and squads refresh on a cron, and the site ran itself for the last ten days of the season.

The Pavilion Pass is what made it travel: a 1080 by 1920 story drawn on a canvas in the browser, with a share link that pre-selects your team for the friend who opens it. It carried the dashboard to 90,000-plus Instagram views during the season and became the formula Fan Park was built on. The detail is in the screens below.

## From the gate to the dashboard.

### Every pass is stamped to a name.

Onboarding asks two things: your name and your team. The name goes on the ticket, the footer and the whole dashboard.

![Step two on a phone: Who do you live and die for? over the jersey grid, CSK, MI, RCB and KKR in their kits.](https://anirudhgoel.xyz/_astro/onb-teams-phone.BCkALswG_1RuWX.webp)

### Who do you live and die for? Ten jerseys, one choice.

Pick a team and the dashboard floods in its colours, derived from the primary and secondary with color-mix so the washes and glows stay on-brand.

### Editorial cream paper inside a black broadcast sandwich.

The design rule: Wisden almanac typography for the editorial layer, IPL broadcast graphics for the team-colour blocks, a personal issue of a magazine for the framing.

Nothing is sent anywhere; it lives in your browser. The promise printed in the credits: your name and team never leave your browser, no account, no server, nothing.

A referral link with a team code pre-selects the tile for the friend who receives it, which is how the pass travelled on Instagram.

Five typefaces with strict roles: Bebas Neue for names, Instrument Serif italic only for ceremonial lines like the chant, Inter for UI, JetBrains Mono for numbers. Vanilla HTML, CSS and ES modules. No framework, no build step.

## Screens

### The mast is a ticket, notches and all.

Ticket-edge notches, a crest strip with season and serial, the massive name, the italic chant, and the Season Dossier plate on the right with position, points, matches and form. A perforated divider and a dateline with the data-status pill underneath. Download Pass is the primary action on every viewport.

![The dashboard on a laptop: the black header and the Dispatch ticker over the cream mast, ANIRUDH, the italic RCB! RCB! chant, Download Pass, and member 830 with position 1, 18 points, 13 matches and the form.](https://anirudhgoel.xyz/_astro/dashboard-crop.CRGTVTdH_2bqjvO.webp)

![The mast on a phone: The Pavilion, Season 19, number 830, Good morning, Anirudh, the chant and the red Download Pass button.](https://anirudhgoel.xyz/_astro/mast-phone.DhBW-xsr_1c8IA4.webp)

### The points table with your row lit up.

Standings refreshed by a daily GitHub Actions scrape, later wired to a Wikipedia scraper on the Pit Wall worker with a 30-minute KV cache and the static snapshot as fallback. QUALIFIED and ELIMINATED chips arrive on their own as the maths locks. The site ran itself for the last ten days of the season.

![The points table: RCB first in a red row, the second and third rows marked as through to the playoffs, the last two marked as out, with played, won, lost, net run rate and points.](https://anirudhgoel.xyz/_astro/standings-desktop.DziYN4gm_27CPH5.webp)

Final table, snapshot of 18 May 2026

### Orange Cap and Purple Cap, top five, refreshed every day.

Most runs and most wickets in the season, with the team badge and the number set in mono. Same cron as the table, so the caps never lag the standings they sit beside.

![The caps on a phone: the Orange Cap's top five by runs, then the Purple Cap's by wickets, the RCB players' rows tinted red.](https://anirudhgoel.xyz/_astro/caps-phone.C0UzE1Rf_yIzLs.webp)

### All 74 fixtures, filtered to your team, results in one column.

Fixtures pulled through cricapi on a daily cron, with the venue and result on every row. In season, a live scorecard appeared above the schedule when your team was on the field, polling every 60 seconds during play.

![All Matches on a laptop: the season's fixtures in one column from 28 March, each row with the teams, the venue and the result, RCB's rows marked in red.](https://anirudhgoel.xyz/_astro/schedule-all-desktop.DQQyyJX1_Z5XWk9.webp)

![My Team on a phone: RCB's fixtures only, each with its date, the opponent, the venue and the result.](https://anirudhgoel.xyz/_astro/schedule-mine-phone.Iu_Y11jh_kPLD9.webp)

### Pavilion Intel: four dressing-room stories per team.

Hand-written storylines, dated, kept honest by a staleness check that flags any story past its shelf life, so a stale line never sits on a live dashboard. The feeds carry the numbers; the intel carries the reasons to care, written by a fan who watched every ball.

![Pavilion Intel on a phone: dated storyline cards for RCB, First through the gate and Patidar's captain year, each stamped 18 May 2026.](https://anirudhgoel.xyz/_astro/intel-phone.CU6fDk8Q_YOX0m.webp)

### The squad, every player with a role and a jersey number.

Twenty-five names in a grid: batter, bowler, all-rounder, keeper, with the jersey number set large in the corner of each card. Squads auto-refresh, so a mid-season signing shows up without a deploy.

![The Challengers squad on a laptop: a grid of player cards, each with a role chip and a large pale jersey number.](https://anirudhgoel.xyz/_astro/squad-desktop.3MWT79uR_Zsk8r.webp)

![The squad on a phone: two cards a row, each with the player's name, a role chip and a large pale jersey number.](https://anirudhgoel.xyz/_astro/squad-phone.NBjxbgSu_Z1q4OSz.webp)

### The Pavilion Pass

Drawn on a Canvas 2D in the browser: your name, serial, avatar, team colours and the season line. Add a photo, download, share, or copy a link that pre-selects your team for whoever opens it. A batch export saves passes for all ten teams in one ZIP. Live 22 April 2026, custom domain the next day; the pass is what carried it to 90,000-plus Instagram views during the season.

![The pass on a phone: Your Pavilion Pass, the 9:16 preview with Anirudh, number 830 and the RCB jersey, then Add Your Photo, Download and Share.](https://anirudhgoel.xyz/_astro/share-modal-phone.BLUh0Y3u_1Xp2bS.webp)

What I would do differently

One thing I’d do differently: wire the live data feed before the first matchday, not on day 25. The static snapshot with a daily refresh held up, but a fan refreshing during a chase deserves the live wire from ball one.

## More work.

[Every case study →](https://anirudhgoel.xyz/projects)

[**Rep**Build · Music Community2026 ](https://anirudhgoel.xyz/projects/rep)[**Fraghill**Client · Fragrance2026 ](https://anirudhgoel.xyz/projects/fraghill)[**Qurist**Client · Medical Cannabis2026](https://anirudhgoel.xyz/projects/qurist)

## Have a build in mind? Say hi.

[Book a 30-minute call ↗](https://cal.com/anirudh.goel/consultation?utm_source=portfolio\&utm_medium=site\&utm_campaign=study-the-pavilion\&utm_content=closing) <hello@anirudhgoel.xyz> [WhatsApp me ↗](https://wa.me/917814769892?text=Hi%20Anirudh%2C%20I%27m%20on%20your%20The%20Pavilion%20case%20study%20and%20want%20to%20talk%20about%20a%20project.) [More work →](https://anirudhgoel.xyz/projects)

I reply the same working day.

---

Site index for AI assistants: https://anirudhgoel.xyz/llms.txt
Every page as one file: https://anirudhgoel.xyz/llms-full.txt
