Sports media ·Oct 2026 → ongoing
Pure Hoops
A basketball business drawn as one web before any product, then its home built as the business at work: one data layer, every figure from its source, a sponsor's loop counted on the page, a store sourced product by product, and a free scorer as the door for any league. A private draft, not yet launched.
- Timeframe
- Oct 2026 → ongoing
- Tags
- Sports media · sveltekit · cloudflare · pwa · payments
- Credits
- Xern Mottley — Engineer
Where it started
The first league taught us something a season's app could not hold by itself: the basketball that matters most in the Caribbean is played on courts the big networks do not film, and almost nothing about it is recorded well. There was a page with a real audience, a scorer that worked, a pipeline that read a broadcast, and no business around them.
That league is a client with its own way of working, so the business had to stand without it. Before any product, it was drawn as one web: where the basketball comes from, one record of it, the making, what it makes, where it reaches, who it serves, how it pays, with the money running back to the start.
The business as seven columns before any product, with the money running back to the first; and the home's eight pages, one a pillar, on one data layer.
Software and media came first, because they need no capital and are the studio's own field; the store, the broadcast kit, events and a league of our own follow, paid for by them.
What was done
The home had to be the business at work. One page a pillar: watch, the store, advertise, the software, the broadcast, the social network, a league's own door, and a desk where the business is run.
The first design was turned down twice, its palette for having been borrowed from other sites with no theory behind it. The palette was then derived from colour theory, and the business chose the ball's leather on white and maple. The studio's first-draft gate found twelve faults on the new home, from sideways scroll on a phone to a page with no title. It passed the same morning, and each page followed in turn.
Social, on the draft: the network in one line, the flagship's most-played reel by the account's own count, and the sponsored slot served in the feed, with a sample advertiser. The ribbon is the draft's own, and true.
Underneath, one data layer: prices, products, orders, bookings, sign-ups, leagues and their games' logs, campaigns and events, a file a table on the studio's machine and the same tables in Cloudflare's database on the draft. Every figure on every page is drawn from its source by one component, and a gate fails any stray digit.
The loop the home describes is the loop it runs: a sponsored slot is served and counted when shown, counted again when tapped, its code rides the cart into the order, and a sale that arrives with it is counted to the campaign the sponsor reads.
A sponsored slot served, counted when shown and when tapped, the tap's code carried into the store and a sale counted to its campaign; and the one data layer every page reads.
The decision that mattered
Two rulings shaped the build. The first league's film is mostly a phone-grade stream of a dim hall, and the business must not depend on any league. So the film came off the public pages, and the court on the home is licensed stock. A platform's player is the platform's grant; a file on our domain needs a letter.
Plays from leagues anywhere come through each platform's own player and are never copied. The eighteen on the home were chosen by a written rubric, after a first sixteen had been picked by a search and never watched.
The second ruling was the door. A league-branded app under each league's accounts would have been the easy sale and the wrong business. Instead there is one Pure Hoops app for every league, and a free scorer.
A league signs up with a key and gets its page; its scorer scores a game on a phone with no signal and sends each play when it can; the league's key runs it and the scorer's key only scores.
A league signs up with a private key, and its page exists at once. Its scorer's link scores a game on a phone with no signal and sends each play when it can; the league's key runs the league and the scorer's key only scores. Before it went up, a security pass closed two holes: a compressed upload that could exhaust the server's memory, and a second phone able to overwrite a finished game.
Where it stands
The home passed its gate on 22 October, 27 checks and none failing, and runs as a private draft on the studio's drafts account. Nothing is wired to a real account yet: the checkout is a sandbox, and no order has been taken. The address is chosen and not yet live.
A league gets in by one form, then the machine: its season built, its page, its app, its sponsors. Pure Scorer scores a league's game end to end on the draft.
Get your own, on the draft: one form, then the machine. The package's rungs and their figures sit below the fold.
The store is sourced: eight lines and thirty-three products, from reversible team kits to recovery boots. Each was found by the qualities a player needs first, then by who makes it best for the price, in any country, with duty and freight counted to the door. The first maker's quote is in, and the product photographs wait on their owners' written permission.
The media pipeline that feeds the network is its own repository, with its ledger of what may be used. Its first edits ended before the ball went in, because the time the record gives each basket runs up to 3.3 seconds off the picture, and they were picked by numbers rather than by eye. The edit work is parked until one edit is right.
The first public step is the network posting, and its first job is the first league's new app, on the App Store since 28 October.
Port of Spain dates, from a sketch of a broadcast on 5 October to a league scoring its own game on the draft on 21 October.
Next — NMLS Document Repository →