Skip to content
AmreliaTechnologies

Case study · Sports

SportzOS: a league platform with live scoring across seven sports

Registration, payments direct to organisers, fixtures, live scoring and standings for tennis, pickleball, cricket, soccer, basketball, volleyball and baseball, in one app and one website.

Client
SportzOS
Platform
iOS, Android, web
Services
Mobile AppsWeb DevelopmentSaaSUI/UX Design
Technology
React NativeExpoNext.jsSupabaseStripeTypeScriptVercel

Overview

SportzOS is a league operating system for community and club sport. Players find and join leagues, pay the organiser directly, see fixtures and live scores, and keep a personal play log of their own matches. Organisers create leagues in any supported sport, approve team sheets, assign scorers and match officials, and publish standings.

The iOS app has been on the App Store since July 2026. The same codebase targets Android, and the website shares one backend with the app.

Client challenge

Every sport scores differently. Tennis has sets, tiebreaks and advantage rules. Cricket has overs, extras, run-outs and net run rate. Team sports have squads, approvals and a playing eleven per match. One generic model would have been wrong for all of them, and standings had to stay correct when a result was corrected after the fact.

User problem

Players wanted to register in a minute, pay once, know when and where they play, and see live scores without asking in a group chat. Organisers wanted the admin to disappear: registrations, payments, fixtures, standings and disputes handled in one place, with their own name on the fees.

Strategy

Build one platform with a sport module per sport rather than one scorer that pretends to cover everything. Keep money simple and honest: fees go to the organiser, and the platform is not the merchant of record. Ship the free tier first so individuals can log their own matches with no league at all.

UX

Five tabs in the app: Home, Player Hub, Play Log, Leagues and Locker Room. Scoring screens are built per sport so the scorer sees only the controls that sport needs. Organiser screens mask personal data by default; a player's contact details are revealed only when both sides opt in.

Architecture

Platform architecture
  1. Experience

    • iOS and Android (Expo)
    • Next.js website
  2. Backend

    • SupabasePostgres, Auth, Realtime, row-level security
    • Edge functions
  3. Services

    • Stripe (direct to organisers)
    • Push and email

Development

An Expo React Native app with expo-router, a Next.js website, and one Supabase project with row-level security guarding every table. Scores publish over Realtime. Standings are recalculated from source results rather than patched incrementally, so corrections never drift. JavaScript updates ship over the air between store releases.

Key features

  • Individual and team registration with partner invites
  • Entry fees paid directly to organisers
  • Sport-specific live scorers
  • Standings with tie-breakers and net run rate
  • Match officials and duty-team draws
  • Public player profiles and personal play log
  • Organiser dashboard with masked personal data

Engineering challenges

  1. 01

    Standings that stay correct under corrections

    Incremental updates drift the moment a result is edited. The standings engine recalculates the whole table from source results, with per-sport tie-break rules, every time a result changes.

  2. 02

    One identity across sports and surfaces

    A player had been matched by name, so a namesake could appear as you. Identity now rests on the account, with public profiles keyed by a player ID derived from the account rather than the name.

  3. 03

    Personal data locked down by policy

    Organisers need to run a league without seeing more than they should. Row-level security plus masked views mean an organiser sees registrations, not phone numbers, unless the player chooses to share.

  4. 04

    Passing store review

    Account deletion from inside the app, user-generated content controls for match chat, and a clear liability waiver at registration were built to meet App Store requirements before launch.

Outcome

SportzOS has been live on the App Store since July 2026 and supports seven sports. Figures beyond those two are not published until they are verified.

7

Sports supported

Live since July 2026

App Store

Related work

WebTechnology & SaaS

Zylpe: a WordPress site rebuilt in Next.js without changing a URL

A page-builder marketing site for an IoT analytics and digital transformation firm, rebuilt page for page as a fast Next.js site with every public URL preserved.

Problem
The WordPress site carried a heavy page builder, a slider plugin and leftover e-commerce modules, which made it slow to load and risky to update.
Solution
We crawled the live site, turned its page-builder sections into a typed content model, and rendered all 47 pages from data in Next.js, self-hosting every asset and font.
Platform
Web
Client
Zylpe
View project
WebProfessional Services

AMTEX Consulting: an enterprise website with a CMS-agnostic content layer

A new website for an Oracle and enterprise transformation consultancy in Georgia, USA, presenting two pillars, Oracle and Enterprise Transformation and Digital Product Engineering, on one typed content model.

Problem
The previous WordPress site was out of date, hard to maintain and had become a security liability. Its content no longer reflected what the firm sells.
Solution
A Next.js 16 site with a content contract in TypeScript, local JSON as the first provider and adapters ready for a headless CMS, so copy can move to a CMS later without touching pages.
Platform
Web
Client
AMTEX Consulting
View project

Facing something similar?

We will walk you through how we approached this one and what would be different for you.