Ribbie

Ribbie

Simple, affordable league management for adult recreational sports: schedules, standings, rainouts, and score reporting that don't require a training manual or a monthly bill your treasurer has to explain.

Why Ribbie exists

We didn't set out to build software

The Brookline Men's Softball League ran on a hosted league-management platform for years. When that platform shut down, we went looking for a replacement, and didn't love what was out there.

Most of what we found fell into one of two buckets. Either it was built for youth sports leagues — registration forms, parent communication, background-check tracking, tournament brackets for eight-year-olds — and we were paying for a pile of features a 60-and-over men's softball league will never touch. Or it was priced like it, with per-team or per-season fees that didn't make sense for a self-run league with no marketing budget and no registration fees to speak of.

So we built Ribbie for BMSL instead: just the parts a real adult league actually uses: a schedule, standings, a way for managers to report scores without creating an account, a way to handle rainouts without a group text spiraling out of control, and an admin side simple enough that running it doesn't become someone's second job. It's been running Brookline's seasons since, and it's built to work for other leagues too, not just softball, not just Brookline.

For players and fans

A public site every team can actually use

Every league gets its own address (ribbie.net/l/your-league, or a domain of your own) with a home page, schedule, standings, results, and a page per team. No login required to look anything up.

A schedule that answers the real question first

  • Upcoming games lead the page, not buried behind months of history.
  • Doubleheaders are flagged clearly, since for a lot of leagues they're the normal way games get scheduled, not the exception.
  • Games still needing a score, and postponed games awaiting a new date, get their own clearly-labeled sections instead of cluttering "what's coming up."
  • A forecast shows right on the game row, days out — "Overcast 75°" — as a heads-up, never a false "it's canceled." Tap it for the hour-by-hour around first pitch, with a link to the full forecast.
  • One click adds the whole season (or just one team's games) to a phone calendar, and it stays current automatically.
ribbie.net/l/your-league/schedule

Schedule

2026 Season

Upcoming Schedule

DateTimeAwayHomeStatusWeather
Tue, Aug 117:15 PMGMGolden Moe'sAGEAgentsScheduled DHRain possible
Tue, Aug 118:15 PMAGEAgentsGMGolden Moe'sScheduled DHRain possible
Wed, Aug 127:15 PMTAPTappeDIRDirtbagsScheduledClear

Full season calendar: Subscribe · Download .ics

Schedule page — sample data, styled with Ribbie's real CSS

Standings that show the whole picture

  • Wins, losses, ties, forfeits, winning percentage, and games behind, plus a color-coded last-5 strip and a current streak, all sortable with a tap.
  • A Sched column shows each team's real schedule size, and a CG column shows how many games were canceled outright, so nobody has to do the arithmetic to figure out why a team's game count looks off.
  • Home/away splits and a last-10 view, plus a head-to-head grid — one page, no separate stats site.
  • A deterministic seed projection: who's clinched a bye, who's mathematically out, and for anyone still undecided, the actual game and date that settles it — not a guess, arithmetic against the remaining schedule.
  • Download the whole schedule, the results, or one team's games as a CSV any time — no format to learn, just the numbers.
  • A plain-language legend at the bottom, since not everyone remembers what "FF" stands for.
  • Results read the way people say them — "Tappe def. Dirtbags 7-3," winner first — instead of making you work out which column was home.
  • A short written summary of where the race stands: optional, and never guessing at a number it can just be told.
ribbie.net/l/your-league/standings

Standings

2026 Season

TeamWLPctGBStrk
CLIClients153.833—W4
TAPTappe133.8131.0W1
DIRDirtbags1111.5006.0L2

Seed projection

Dirtbags: Aug 24 decides 3 vs 4

Standings page — sample data, styled with Ribbie's real CSS

Rainouts and weather, without the guesswork

  • A "tonight's verdict" banner — Games are on, Postponed, or Deciding by a stated time — appears at the top of every page, set by an admin in one click.
  • Calling it off doesn't mean touching every game by hand: it postpones the whole night's schedule in the same step.
  • A rainout rescheduling assistant suggests real open slots at your own fields, respecting each team's day-of-week availability.
  • An official town field closure, when one applies, is called out separately from an ordinary forecast, so "the forecast looks rainy" never gets confused with "the field is officially closed."
ribbie.net/l/your-league
Tonight is off Rained out, a makeup date will be posted here.
Weather heads-up
Heavy rain recently (1.4") — Tue, Aug 11 7:15 PM, Dirtbags @ Tappe

Game-day verdict banner + weather heads-up — sample data

Playoffs, start to finish

  • A bracket for any number of teams: the top seeds get byes, and every round is a best-of series you set once for the whole league.
  • "If necessary" games are worked out from the results, not the calendar. At 2-1 in a best-of-5, game 4 is required and only game 5 is marked "if necessary."
  • Once a series is decided, its leftover games are cancelled on their own, so nobody drives to a field for a game that doesn't exist.
  • When the final is decided, the champion is announced at the top of the home page and the Playoffs page.
ribbie.net/l/your-league

Playoffs

The 2026 season is complete.

🏆 Dirtbags — 2026 champions.

Championship · best of 5

Dirtbags won the series 3-1 over Tappe

Semifinal · best of 3

Tappe won the series 2-1 over Bombers

Dirtbags won the series 2-0 over Clients

Home page Playoffs card — sample data, styled with Ribbie's real CSS

League history, every season in one place

  • Each season's playoff champion and regular-season winner.
  • All-time standings, playoff records, and championships for every team, matched across seasons.
  • An all-time head-to-head grid, and single-game records: biggest win, most runs, highest-scoring game.
  • Everything is calculated from the games themselves, so a season's row always matches that season's standings page. If a champion wasn't recorded, the page says "Not recorded" rather than guessing.
ribbie.net/l/your-league/history

League history

3 seasons

Champions

SeasonPlayoff championRegular season
2026🏆 DirtbagsTappe (18-4)
2025Not recordedBombers (13-7)
2024Not recordedTappe (18-6)

League history — sample data, styled with Ribbie's real CSS

For team managers

Reporting a score takes one link, not an account

Every manager gets a private, unguessable link, not a username and password. Open it, tap a score in, done. It works for a forfeit too, and re-submitting just corrects a mistake instead of creating a mess.

  • No sign-up, no password to lose, no "forgot my login" emails to send.
  • A big tap-friendly number pad, built for a phone in a dugout, not a desktop form.
  • A doubleheader night is one screen and one Save button. A game you leave blank stays blank; nothing gets posted as a fake 0-0.
  • Or just say what happened: type or dictate one sentence ("we took both from Moe's, 12-4 and 8-7") and it pre-fills the score for confirmation — nothing posts until you tap confirm.
  • A dedicated forfeit button, so a forfeit doesn't get typed in as a fake score.
  • Add a note to any game ("8 innings," "field was soaked but we played") — it shows up right on the public results page.
  • The first report counts right away. Changing a score after it's already in the standings goes to the league for a quick approval, so a finished result can't be quietly rewritten.
  • A Manager FAQ is one tap away on every page. Managers never have a login, so there's no sign-in link to get confused by.
  • If a link ever leaks, the league can reissue it in one click. Nothing else changes.
ribbie.net/score/••••••••••

Report the score

Dirtbags @ Tappe · Tue, Aug 11

Manager score-reporting page — sample data

For league admins

Everything a season needs to run, in one place

The admin side is built for a volunteer who runs this on top of a real job, not a full-time league operations department.

Schedule generation

Set your teams, fields, game slots, and each team's day-of-week availability, and generate a balanced regular-season schedule automatically: doubleheaders, matchup balance, and field conflicts handled for you.

Bulk game management

Select a batch of games and postpone, cancel, or reschedule them all at once, with an optional reason saved to each game's history, and an Undo if you change your mind.

Playoffs

Seed the bracket from final standings, with byes, best-of series, and an optional paid-in-full eligibility rule. Plan a round in plain English ("doubleheader Tuesday, game 3 Thursday") and post a tentative schedule for players to see before it's final.

Fees tracking

Track what each team owes and what's been paid, with a running balance per team, no separate spreadsheet to keep in sync.

A "Today" dashboard

One page shows what actually needs your attention right now: scores still missing, games needing a makeup date, teams with an unpaid balance, and season-health numbers (forfeit rate, on-time scoring) at a glance.

Rainout rescheduling that explains itself

Three ranked proposals, not one guess — each with real reasons ("same weekday as the original," "neither team already scheduled that night") and, for anything that couldn't be placed, exactly why not.

Umpire scheduling

Assign umpires automatically by day-of-week rules, with manual overrides and locked-in games where you need them. Each umpire gets their own private link to see their schedule, no account needed, the same as managers.

Import your existing schedule

Switching from another platform? Bring your schedule and teams in from a CSV. A preview step shows exactly what will happen first: matched rows, anything unrecognized, and any duplicate, before a single game is saved.

Getting the word out

Post notices and your own info pages (rules, field directions). Missing-score reminders can go out on their own each morning, and calling a night off can email every affected manager on the spot — both off until you turn them on. A new schedule becomes a ready-to-send WhatsApp message, or a table you can paste into an email.

Site traffic

See who actually uses the public site: busiest days, which pages, phones vs. laptops, and whether people check before game time. No cookies, no IP addresses, and the history is kept for good.

End-of-season report

Forfeits, rainouts, reschedules, late scores, and fees, broken down by team, for when it's time to set next season's rules. Forfeits count against the team that didn't show up. Rainouts don't count against anyone.

Adding a league

One form sets up a new league: copy another league's settings, create the first season and add its commissioner. A getting-started checklist walks through the rest, and a league can have its own web address.

Backup & export

Download everything your league owns, every season, whenever you like: as spreadsheets or a single file. We started Ribbie because a platform shutdown nearly took our history with it.

A nice touch

Optional AI summaries — carefully kept honest

Turn it on and the standings, schedule, and results pages each get a short written recap: "the race is tight, with X and Y separated by exactly one game" instead of a bare table. It's opt-in per league, cached so it doesn't regenerate on every page view, and every fact it's allowed to state is computed in code first and handed to it. It never gets to guess a number, and every summary is checked against the real results before anyone sees it. A summary that gets a matchup, a series score, or even the season's status wrong is replaced with a plain recap that can't be wrong. Every reader can also turn summaries off for themselves.

The design

Looks like a ballpark, works like a phone app

Most people check the schedule on a phone in a parking lot, so the phone is the main design target: a bottom tab bar, tables that turn into one card per game on a small screen, and tap-sized score entry. The look borrows from the scoreboard and the printed program.

Display · Bevan
Tappe 7, Dirtbags 3

League names, headlines, game times and scores: the big, heavy numbers.

Reading · Archivo
Games are on tonight. Rain holds off until after 10.

Everything you read: notices, summaries, help pages, forms.

Labels · IBM Plex Mono
Tue, Aug 11 · 7:15 PM

Dates, badges, column headings: the details you scan, not read.

Five color palettes, each with its own light and dark version. A league picks one, and every visitor can choose light, dark, or match their device.

Pinstripe (default)
Crimson
Royal
Sandlot
Dugout

Each swatch: light on the left, dark on the right. The fonts are served from Ribbie itself, not a third-party font service, so nobody else sees who's reading.

The comparison that actually matters

Built for adult rec leagues, not repurposed from youth sports

What we kept running into

  • Per-team or per-season pricing that adds up fast for a self-funded league
  • Registration, waiver, and background-check tooling nobody here needs
  • Parent-communication and tournament-bracket features built for kids' leagues
  • Accounts and passwords for every single manager, just to report a score
  • A learning curve steep enough that "who's running this next season" became a real question

What Ribbie actually is

  • Built and run for one real adult league's actual seasons, not a demo
  • Schedule, standings, results, rainouts, fees, playoffs — nothing else
  • No accounts for players or managers; a private link is enough
  • Simple enough that a volunteer admin can pick it up in an afternoon
  • Your league's data is yours: download all of it, any season, any time
  • No ads and no tracking cookies. Site traffic is counted without either.
  • Reasonable to run for a league that isn't collecting big registration fees
Get in touch

Built for BMSL — open to other leagues

Ribbie has been running the Brookline Men's Softball League's seasons since our old platform shut down. It isn't Brookline-specific, and it isn't softball-specific. If your league is tired of paying for features you don't use, take a look at the live example below and get in touch about setting your league up.