GameDayGet the app

Under the floodlights

The weekly game, minus the group-chat chaos.

GameDay organises your weekly game, so the group chat can go back to banter. One link in the group chat handles who’s in, which day, the teams and who has paid.

On Google Play and the web. The iOS app is on its way to the App Store.

Group screen with a live day poll and the next gamePayment screen with a Pay with UPI button and who has paidTwo balanced teams with captains, keepers and positions

The problem

WhatsApp is for talking about the game. Not organising it.

Every weekly game runs on a WhatsApp group. WhatsApp is good for talking about the game and bad for organising it.

“Who’s in?” archaeology

47 messages, three “in”s, one “maybe”, and the organiser counting heads on their fingers on Thursday night. The count is always out of date.

Picking a day

“Sat or Sun?” turns into a 60-message negotiation, and the people who can’t make any day never say so.

Too many, too few

The turf fits 10 and 13 say yes. Nobody keeps a waitlist, and when someone drops out, nobody tells the next person.

Teams

Picked by whoever argues loudest. The strong players end up together, both keepers on one side, and someone feels left out.

Money

One person pays ₹1,800 up front, then sends “bro, payment?” one message at a time. ₹1,800 between 11 people doesn’t even split evenly.

No-shows

People who say “in” and don’t turn up face no consequence, and nobody keeps track.

The organiser carries all of it. GameDay is designed around making their week easier, while keeping each player’s part to one or two taps.

What it does

One link. Who’s in, which day, fair teams, and who’s paid.

Session screen showing You’re in, a guest, captain and keeper volunteering and position chips

One tap to commit

  • The organiser creates a session and everyone answers “Are you in?” with one tap.
  • The headcount is live and the same for everyone, including who hasn’t answered yet — so you nudge only those people.
  • Bring a named guest: they count towards the headcount, get a spot on a team, and their share is added to yours.
  • When the turf is full, the next person goes onto a waitlist and is promoted and notified automatically if someone drops out.
Day poll with candidate days, vote bars and voter names

Let the group pick the day

  • The organiser offers candidate days and times, and everyone ticks the ones that work.
  • “None of these work for me” is an answer too, so silence and “can’t make it” are no longer the same thing.
  • One reminder goes to anyone who hasn’t answered in 24 hours, and the organiser is nudged to lock the day in.
Team A and Team B with captains, goalkeepers and positions

Fair teams in one tap

  • Form teams deals everyone into two squads with a card-shuffle reveal — random, but balanced.
  • Volunteer captains are split one per team, goalkeepers and preferred positions are spread evenly, and team sizes stay within one.
  • The organiser can then move or swap players, add a late arrival and share the team sheet to WhatsApp.
Payment setup with before, after or at the turf, and a whole-turf price of ₹1,800

Split the turf, to the rupee

  • Pay before the game for turfs that want money upfront, after the game when the price might be negotiated, or at the turf counter.
  • Enter ₹150 each, or the turf’s total. GameDay splits the total Splitwise-style: whole rupees that add up exactly.
  • Any member can be the one who paid the turf. Price and timing are remembered per turf for next time.
Pay ₹180 with UPI button and a live list of who has paid

No more “bro, payment?”

  • One button opens GPay, PhonePe or Paytm with the amount filled in. There’s a QR code and copy-UPI-ID fallback too.
  • When you come back, GameDay asks “Paid ₹150 to Arjun?”, so marking it paid is one tap.
  • The collector sees a live “collected so far” bar, paid and pending lists, and up to three polite automatic reminders go out.
Profile showing games played and pending payments across groups

Know what you owe

  • Your profile shows every payment you still owe, across all your groups, with a tap through to pay.
Game card with 10 of 10 confirmed and a top streaks leaderboard

Showing up counts

  • Attendance is marked after every game. Everyone is assumed to have turned up, so the organiser only unticks the no-shows.
  • Turning up builds a streak, and a leaderboard shows who turns up and who pays — gentle, public accountability.

And the rest of the week

Turfs, remembered

Save the turfs your group plays at with a map pin. Sessions link straight to Google Maps.

Suggestions, not side-chats

Players suggest a different turf or time, and the organiser applies or dismisses it in one tap.

Invites that just work

One link opens the app if it’s installed, or the store or website, and lands you in the group. Sign in with Google or Apple.

Notifications that matter

New game, day picked, teams out, off the waitlist, payment due, kickoff in 2 hours. Each type can be turned off.

Group admin

Admins edit group details, add or remove admins and remove members.

Safety and privacy

Report and block, public privacy and terms pages, and full account deletion from the app or the web.

The feel

“Floodlit”

GameDay doesn’t look like an admin tool, because organising the weekly game shouldn’t feel like filing a report.

A turf at night

Everything is dark except what matters, with one floodlight-yellow action per screen.

Buttons that press in

NeoPop buttons physically depress, and numbers count up instead of jumping.

Small celebrations

Locking in your spot, the squad reveal, settling the last payment and streak milestones each get a moment.

Mobile-first

Because that’s where the group chat is. Every screen is checked at large font sizes and on narrow phones.

Product decisions

How it was decided

  1. 01

    Design for the organiser, one tap for players

    Every feature was weighed by whether it saves the organiser work without adding steps for players.

  2. 02

    Pay before or after, decided by how turfs work

    Some turfs need money upfront; some prices get negotiated on the day. A third option, pay at the turf, covers groups where everyone pays the counter.

  3. 03

    Splitwise-style rounding

    ₹1,800 between 11 people is ₹163.64 each, which nobody can pay. GameDay charges ₹164 or ₹163 so the total is exact, and leftover rupees go to the collector first.

  4. 04

    No fake payment confirmation

    UPI apps don’t reliably report whether a payment went through, so GameDay doesn’t pretend. It brings you back and asks one honest question: “Paid ₹X to Y?”

  5. 05

    “None of these days” is data

    Treating silence and “none work” differently tells the organiser who’s really out, and stops reminders going to people who already answered.

  6. 06

    Reminders are capped

    At most three payment reminders, one poll reminder and one organiser nudge. The app shouldn’t become the nagging friend.

  7. 07

    Mark no-shows, not attendees

    Attendance defaults to everyone turned up, so the organiser only unticks the few who didn’t.

Under the hood

How it’s built

Three native clients, one backend

A Next.js 16 / React 19 web app, a Kotlin + Jetpack Compose Android app and a SwiftUI iOS app share the same API and Supabase Postgres database. The OpenAPI contract is generated from zod schemas, so the mobile clients stay in step.

Security by design

All writes go through the API with validation and permission checks, and the database rejects direct client writes. Reads use row-level security, so you only see your own groups.

Production in Mumbai

The API and database moved from Sydney and the US to Mumbai with zero data loss, to sit close to Indian users. Skeleton screens and instant tap feedback mean the app is never blank.

Sign-in on locked-down networks

Corporate DNS filters blocked Firebase’s default sign-in domain, so sign-in now runs through GameDay’s own domain via a proxy, with no change for users.

Scheduled jobs

Postgres cron runs kickoff reminders, day-poll follow-ups and payment nudges every 15 minutes.

Analytics without location

Product analytics are recorded server-side for every platform, with crash reporting in the apps. IP-based location lookup is turned off everywhere.

Tested across platforms

A separate staging database, Playwright end-to-end tests in the browser, and Android emulators and the iOS simulator driven by UI automation against staging.

Release pipeline

Vercel deploys from GitHub Actions, signed Android App Bundles with Play App Signing, and versioned GitHub releases.

  • Next.js
  • React
  • TypeScript
  • Kotlin
  • Jetpack Compose
  • Swift
  • SwiftUI
  • Supabase
  • Postgres
  • Firebase
  • PostHog
platforms: web, Android, iOS
3
merged pull requests across web, Android and iOS
50+
API operations
30+
database migrations
21

So far

  1. Jul 2026

    First version: groups, invite links, Google sign-in, voting with guests and a waitlist, day polls, random teams, UPI payments, turfs and streaks.

  2. Oct 2026

    Native Android and iOS apps on a shared API, with push notifications, invite links that open the app, and kickoff and payment reminders.

  3. Oct 2026

    Balanced teams with captains, keepers and positions; production moved to Mumbai; analytics and crash reporting.

  4. Oct 2026

    Android app live on Google Play.

  5. 20 Oct 2026

    Pay before, after or at the turf; whole-turf prices split to the rupee; “Paid ₹X to Y?” after UPI; smarter day polls.

What’s next

  • Player ratings after each game, and player cards built from them.
  • Public launch on the App Store.

Stop counting heads in WhatsApp.