CaptainMode

You didn't volunteer to runa group text.

Captaining is a real job nobody pays you for: chasing availability, building a lineup that keeps eight people happy, and finding a sub at 9pm the night before. CaptainMode does the chasing so you just make the calls.

Your players never create an account. Not one login, ever.

This week, now

  • Text 12 people. Six reply. Two reply “maybe?”
  • Text the six who didn't. Twice.
  • Build the lineup in your head at 11pm, second-guessing who played least.
  • Send it. Field “wait, am I playing?” from four people who are not.
  • Someone bails Monday. Text nine subs one at a time.
  • Realise Sally still needs two matches to qualify. Redo the lineup.

This week, with CaptainMode

  • Tap poll. Everyone gets one email with three buttons.
  • Non-responders get nudged automatically, 48 hours out.
  • Tap generate. A legal, fair lineup appears. Drag to change anything.
  • It emails the whole team, so nobody has to ask.
  • Someone bails? One tap blasts every eligible sub. First to claim gets it.
  • Scores in? One tap sends the team the recap — in the right tone for the day.
  • Eligibility and play counts are tracked for you, all season.

What it actually looks like

Three screens, in the order you meet them.

What your players get — one email, no login

Can you play?

Tuesday, Sep 1 at 9:30 AM — vs Northside Racquet Club (home)

YesNoMaybe

One tap. No account, no app, no password to reset.

What you see back — availability, four columns
14
Available

Marta Devlin

Priya Raman

Joan Whitfield

Camille Oduya

+10 more

3
Maybe

Rae Lindqvist

Tess Abara

+1 more

7
Out

Dana Kirchner

Nour Haddad

+5 more

0
No answer

Enough to field a lineup (8 spots).

The lineup — sent, and confirming itself
Doubles 1avg WTN 30.9
Marta Devlin (3.5)confirmed
Priya Raman (3.0)confirmed
Doubles 2avg WTN 27.1
Joan Whitfield (3.0)confirmed
Rae Lindqvist (3.5)confirmed
Doubles 3avg WTN 29.8
Camille Oduya (2.5)confirmed
Tess Abara (3.0)confirmed

8 of 8 confirmed — a week before the match.

Recreated from the live product, with example names — no real member data.

The weekly loop

This is the whole product. Everything else exists to support it.

  1. 1

    Ask who can play

    One email per player: “Can you play Tue 7:00pm vs Diablo Valley (home)?” with Yes / No / Maybe buttons. One tap, no login, no app. You watch a live tally instead of scrolling a thread.

    Anyone who hasn't answered is nudged automatically 48 hours before your deadline — the reminder you currently send by hand every single week.

  2. 2

    Build the lineup

    Availability is a hard filter, so only players who said yes are considered. Then it stacks by strength, honours partner preferences, pairs a deuce-side player with an ad-side player, and balances who's played least.

    Never-pair lists and court limits are never violated. Combined-rating caps for Combo and Mixed are enforced — it won't hand you an illegal 8.5 court. Override anything you like; it warns rather than blocks.

  3. 3

    Send it, a week out

    The lineup goes to the whole team, not just the eight playing — which kills the “am I playing this week?” texts. Players who are in must tap Confirm.

    So you find out about a bailer seven days early instead of on match morning.

  4. 4

    When someone drops

    Mark them out. One click emails every eligible sub at once with a Claim button. First to tap gets the spot, everyone else sees “already filled,” and the lineup updates itself.

    Eligibility is checked for you: the sub's rating has to fit the court and the league's rules, and they can't already be playing.

  5. 5

    After the match

    Photograph the paper scorecard and the scores fill themselves in. Then one tap sends the team the recap: the court-by-court scoreboard with each player's own line marked, your season record, and who's next.

    Two templates, and the result picks one — the winning recap celebrates, the losing one says we'll get 'em next time. Write them once in your own words, or tap once and have them written for you. Scores also feed your record, everyone's match count, playoff eligibility, and which pairs actually win together.

The two things that cause every argument

Who's played least

Matches played per player, visible at a glance, and fed straight into the generator. It's the number one source of team friction, and it's the one thing a spreadsheet never keeps current.

Who still needs matches

USTA asks more matches of self-rated and appeal-rated players than computer-rated ones, and the number changes with how many lines your league plays. Set both thresholds once and you get warned in time: “Sally needs 1 more (1/2) — only 2 matches left.”

Off by default. Plenty of leagues have no playoffs, and tracking nothing is better than tracking noise.

It knows your league's rules

The lineup rules differ by format, and getting them wrong means a defaulted court.

USTA Adult 18+ / 40+ / 55+

Singles and doubles courts at one NTRP level

USTA Combo

Combined-rating caps per court — 7.5, 8.5, 9.5 — validated, not assumed

USTA Mixed

Rating caps plus one man and one woman per pair

USTA Tri-Level

Three NTRP levels, one court each

TopDog & flex leagues

Looser formats, same weekly loop

East Bay Women's Tennis

Local-league friendly, no playoff tracking needed

You pay, not your club

Your own card, no committee, no approval. Up to 6 teams. Co-captains are free.

Your club uses ClubMode

$10 / month

A little less, because your club already carries the platform.

Your club doesn't

$20 / month

Works exactly the same. Nothing is held back.

Start free

Set your team up in a few minutes. Send one availability poll and see what happens.