All projects
Web appBillingshurst Tennis Club

Billingshurst LTC box league platform

A live web app for Billingshurst Tennis Club: member directory, box leagues, score entry, and club admin, built after off-the-shelf tools could not keep up.

Members

160+

Live box leaguesManager + player viewsClub branding admin
ReactMembershipLeague management

Billingshurst Tennis Club needed one place for members to see standings, enter scores, and for managers to run box leagues without spreadsheets and email chains. I built a production web app they use today, with room to grow.

Billingshurst Tennis Club login screen with club branding
Sign-in with club branding: members and managers share one entry point.

The problem

Box leagues only work if standings stay current and everyone can find their matches. Before this build, the club tried existing platforms, and they were not enough. Those tools locked the club into someone else’s workflow, left gaps in how seasons and membership actually run, and did not give enough freedom to stay feasible long term.

  • Previous platforms lacked the control managers needed over boxes, seasons, and day-to-day ops.
  • Rigid roadmaps meant the club could not shape the experience around how Billingshurst actually plays.
  • Spreadsheets and email filled the gaps: workable for a season, not a lasting foundation.
  • Players still needed a simple “my league” view: who to play, what to enter, where they stand.
  • Member admin (search, roles, and a directory that scales past a few dozen players) had to live in one place.

The solution

A role-aware web app designed around tennis club ops: managers get dashboards and admin; players get their box, fixtures, and score entry. Competitions cover Mens and Ladies Singles/Doubles plus Mixed Doubles, with league selection in the sidebar so the same shell serves every draw, without fighting a third-party product’s limits.

League standings dashboard with eleven boxes for Mens Singles
Manager dashboard: live standings across boxes, with promotion and relegation cues.

What shipped

League standings and seasons

Each box shows played/won/lost, sets, net games, and points, with medal ranks and clear promotion/relegation banding. Season date ranges sit on every card so the current round is obvious.

Member directory

Managers can search 160+ registered members by name or email, see totals for admins and blocked accounts, and open player cards with league activity at a glance.

Members directory showing 160 registered members with search and admin actions
Member directory: searchable roster with role badges and manager actions.

Player “My League” flow

Players see their box standing, remaining fixtures, and a straightforward path to add scores. Match results land back into the shared standings so the club is not waiting on someone to update a sheet.

My League view with box standings and upcoming matches
My League: personal standings, remaining matches, and score entry.

League operations

Managers can edit standings, manage players in boxes, and apply start/end dates across leagues in one pass: the operational layer you need when a season rolls over.

Manage Leagues screen with bulk date updates and per-box standings editors
Manage Leagues: bulk season dates and per-box editing for managers.

Club administration

An admin panel covers club colours, logo, competition statistics, scoring/points configuration, and competition types. That is the branding surface other clubs use when they ship the same product under their own identity.

Admin panel club colours settings for primary, secondary, and tertiary brand colours
Admin: club colours and branding controls for white-labelling.
Competition statistics for the current round including remaining and played matches
Competition statistics: remaining fixtures, sets, and games for the current round.
Manage competitions list showing Mens and Ladies Singles and Doubles plus Mixed Doubles
Competitions: configure the draws the club actually runs.

Outcomes

  • Live membership and league data in one app instead of scattered lists and rigid third-party tools.
  • Managers and players share the same source of truth for standings and scores.
  • Club branding and competition setup are admin-driven, not hardcoded.
  • The platform stays under active development with regular updates as club needs evolve.

Technical notes

SPA front end with authenticated manager and member roles, hosted on Netlify. The UI is tablet-friendly for score entry after matches and desktop-friendly for season admin. Auth, roles, and league state are first-class: the parts that usually break a “quick spreadsheet replacement.”

Next step

Need something similar? Send a short brief and I will come back with a fixed quote.

Start your project