Before there was an app
Every other page under /about documents what Tourney is. This one tells the story of why it needed to exist — fifteen-plus years of a pool that worked, more or less, on tools that were never built for the job, until this year.
Fifteen, twenty years ago, running this pool meant a printed bracket, a pen, and a newspaper.
Not a metaphorical newspaper — an actual, physical copy of USA Today, spread out on a table, because that was where you could reliably find player stats printed in agate type small enough to make your eyes hurt. You'd scan down a column of numbers, cross-reference it against a name on your bracket, and make a pick. Whoever had spent the most time with that newspaper before Selection Sunday usually had the edge — not because they understood basketball better, but because they'd done more manual lookups than anyone else in the pool.
There was no live anything. You filled in your bracket once, in pen, and then you watched games on television like everyone else in the country and kept your own private tally in the margins.
Eventually the paper became a spreadsheet — but a blank one.
You'd get a file with no structure in it at all: a link to a list of every player in the country, and an empty grid. You typed your own picks in yourself, by hand, into cells that had no idea what a "valid pick" even meant. Nothing stopped you from picking the same player twice, or a player who wasn't actually in the tournament, or misspelling a name badly enough that whoever was tallying scores by hand had to guess who you meant. The newspaper was gone; the manual labor wasn't.
The next improvement fixed exactly one problem: the blank page.
Someone pre-populated the spreadsheet with the actual players and teams for the year, so at least you were picking from a real, valid list instead of typing free text into a void. Entry got easier. Everything downstream of entry — scoring, standings, correcting a mistake — was still exactly as manual as it had ever been.
Across paper, free-form spreadsheet, and structured spreadsheet alike, one problem never went away: getting real numbers during the tournament was hard.
The spreadsheet got updated once. Maybe by Tuesday. Sometimes not until Wednesday — days after the games that decided those numbers had actually been played. Every update meant someone sitting down, looking up box scores by hand, and re-typing an Excel formula. There was no version of "check the live standings" during a game, or even the same day as a game. You played the pool, and then you waited, sometimes most of a week, to find out how you'd actually done.
Two years ago, Derek took the pool over — and modernized the tools without eliminating the underlying problem.
Entry moved to a Google Form. A Python script "massaged" the submitted data into shape. The results lived on a Google Site, fed by a Google Sheet, which in turn fed a Google Looker Studio report for something close to live standings. It was a real upgrade — no more hand-typed Excel formulas, no more newspaper — and it was still, underneath all of it, a manual pipeline: updated once each morning, after the previous day's games were already long over. A better car, still running on the same road.
This year, every one of those manual steps got replaced by something that runs itself — not a better spreadsheet, but a real, live web application.
None of this erases where it came from. The player pool, the "draft players not teams" idea, the whole shape of the game — that's the same pool it always was. What changed is everything underneath it: the distance between "a game just ended" and "your standing reflects it" went from days to minutes, and the distance between "an idea for the pool" and "a real, tested, running feature" went from one person's evening with a spreadsheet to an actual development process with gates that catch mistakes before players ever see them.
This page told the story. The rest of /about is where the story gets specific.
2 of 4