Case study: Capital Outrigger Canoe Club

Team management and communication for an outrigger club.

The club tried to make TeamSnap work, but it's built around youth sports teams, not an adult paddling club. So I built the club its own platform for managing members and keeping everyone in the loop.

Who it's for
Paddlers, coaches, and the board of an outrigger canoe club in the Sacramento area
What it replaced
TeamSnap, plus the workarounds around it
How people use it
On their phones, saved to the home screen. No app store.
Running costs
Free hosting and database plans, and no ads

The problem

We tried to make TeamSnap work.

I'm the club's president as well as its app builder. Capital Outrigger paddles six-person outrigger canoes on Lake Natoma, and its season runs on practices, races, volunteers, and a fleet of named canoes. TeamSnap handled the basics: a roster, a schedule, and RSVPs. Everything that made us a paddling club happened somewhere else. Click a problem to see what replaced it.

Practice lineup

Seats for every paddler

Drag paddlers into seats 1 to 6Built in
Custom tags for stroke and steerspersonBuilt in
Each member's seat preferencesBuilt in

Now in the club's app

The custom app

Everything the club does, in one place.

A web app members save to their home screen, in the club's colors and seal. It opens full screen like any other app, and it updates itself when something new ships. Screenshots show sample data.

Lineup builder: a six-seat canoe named Uhana Hele with paddlers in seats 1 to 6, each showing age, seat preference, and coach-set role

Coaches

A lineup builder for real canoes

Coaches pick canoes from the club's own fleet and drag paddlers into seats, with custom tags that show who can stroke and who can steer.

  • Everyone who said Going is listed in sign-up order, with the seats they prefer, gender, and racing age.
  • Members set their own seat preferences on their profile.
  • Coach-only paddler roles (stroke, power, steers, and more) that members never see.
  • Auto-fill empty seats, then publish so each paddler sees their seat.
  • A paddler can't be put in two canoes for the same practice.
Schedule month view: paddling days in green, Aquatic Center closed days outlined in red dashes, and check marks on days the paddler is going

Everyone

A schedule you can read at a glance

Paddlers plan their training week around the water. The month view shows paddling days in green and Aquatic Center closures in red.

  • Answer Going, Maybe, or No right from the list, without opening the event.
  • Coaches add a whole season at once: Monday, Wednesday, and Friday mornings until the last day of the season.
  • Plus-ones for socials, spots and waitlists for events that fill up.
New event form showing a warning that the Aquatic Center is closed for Thanksgiving, with a link to its hours and a Schedule anyway box

Connected

It knows when the lake is closed

The club launches from Sac State's Aquatic Center, which posts its closed days on its website. The app reads that page each quarter.

  • Coaches get a warning, with a link to the hours page, before they schedule a practice on a closed day.
  • Closed and paddle-craft-only days show on everyone's schedule.
  • Learn to Paddle class dates come in from the Aquatic Center's page too, each with a sign-up for 4 to 6 club volunteers.
Event details for Morning Practice: Going, Maybe, and No counts, and links to jobs, the lineup, directions, and add to calendar

Everyone

Every event in one place

Details, who's coming, the event's own chat, and volunteer jobs, all on one screen.

  • Coaches see who's coming in sign-up order, with mixed-crew counts and who still needs a race card on file.
  • Volunteer jobs like loading the trailer, with a set number of spots.
  • Message just the Maybes, and coaches can nudge the people who haven't answered.
Calendar sync screen with buttons to add club events to an iPhone, Mac, or Google calendar

Everyone

Practices in the calendar you already use

One tap subscribes a paddler's iPhone or Google calendar to the club schedule, or just to the events they said yes to.

  • New events, changes, and cancellations show up on their own.
  • Each member's link is private and can be replaced if it's ever shared by mistake.
Home screen in the club's colors showing upcoming practices with Going, Maybe, and No counts

Everyone

What's next, the moment it opens

The home screen shows the next practices and how many are coming, with one tap to answer or get directions.

  • Team chat, a chat for every event, and private group and direct messages, with photos and reactions.
  • Phone notifications, and an unread count on the app icon.
  • Private chats stay private, even from admins. Anyone can report a message, and admins hear about it right away.

And the rest of the club's work

Built around how the club actually runs.

Club emails

Coaches and admins email everyone or a few people, or paste in an HTML newsletter, without using up the daily email limit.

Roster with privacy

Coach-only roles and tags, racing age for race categories, and emergency and medical details only coaches can see.

Race card tracking

Coaches tick who has a race card on file, and race-day lists flag who still needs one.

Repair reports

Anyone can report a problem with a canoe or equipment, and track it until it's fixed.

Club links

Dues and race fees on Zeffy, the waiver, and canoe checkout, one tap from the app.

Attendance

A season attendance report for coaches, with optional check-ins at practice.

Feature requests

Members send ideas from the app. They land in the club's Slack, and members see when theirs is done.

Updates itself

New features reach every phone automatically. Nobody deletes and reinstalls anything.

How it came together

Shaped by the people using it.

Club members tested the app on their own phones and posted ideas in Team Chat. Many of their requests were built and live the same day.

  • Security first. Every rule about who can see what is checked by automated tests: members can't make themselves admins, and lapsed members only see the dues page.
  • Lean to run. It runs on the free plans of its hosting, database, and email services, so the club isn't paying a monthly fee.
  • Plain language. Every button and message is written for paddlers, not programmers.
  • Room to grow. Next up: checking dues payments and bringing canoe checkouts into the same app.

Making do with software that doesn't fit?

Clubs, teams, and service businesses all end up bending to their tools. Start with a free 15-minute call, and we'll see whether an app built around you is the right answer.

Book a free 15-minute call

See what else I build