Skip to content
llevintzaPublic

About

An open-source platform for swim teams to manage swimmers, meets, results, and team performance.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OpenSwim

Swim team ops. Meet day timing. Live results.
Free forever — no ads, no paywalls, built for small-town teams.

Get started MIT License Phase 0


Why OpenSwim exists

Small-town and summer-league teams deserve the same polish big clubs pay for — without stacking subscriptions.

Today that usually means a frankenstein setup:

Need Typical paid / limited tools
Rosters, chat, schedules TeamSnap
Phone timing & scoring Swimmingly
Live heat sheets & results SwimminglyFan

Towns either cut features, pay for multiple apps, or both. OpenSwim’s bet is one open stack that covers the whole meet weekend — from signing up swimmers to printing ribbon labels — and stays free and ad-free.

The product

OpenSwim is the clubhouse, the deck, and the parent’s pocket:

Who What they get
Coaches & managers Orgs, seasons, rosters, meet entries, scoring, team chat
Timers & scorekeepers Native phone/iPad timing huddle — starter pulse, lane stops, verify & publish
Parents & fans Live heat sheets, results, rankings, race-aware updates

Meet day, paperless

  1. Seed a dual meet and share the heat sheet
  2. Volunteers join the huddle (QR) as starter / timer / scorekeeper
  3. Times sync live → scorekeeper verifies → parents see results
  4. Export ribbon labels for the award table

Native SwiftUI and Kotlin Compose apps handle timing on purpose: clock sync and deck reliability beat cross-platform compromises.

Beyond one Saturday

  • Track swimmers across seasons and years
  • Rankings and team scores during the meet
  • Manager ↔ parent chat (schedules & volunteers later)
  • League / multi-team formats and Hy-Tek-style interop on the roadmap

Full story: roadmap · backlog · competitor map

Stack

Layer Choice
API Go + Postgres + WebSockets
Web Next.js (App Router) · TypeScript
iOS / iPad Native SwiftUI
Android Native Kotlin Compose
Contracts OpenAPI in packages/contracts

Status

Phase 0 — foundations. Docs, monorepo layout, agent metadata, and the Go API skeleton (apps/api) are in place. Open the Dev Container for local API work (Docker on the host only). Web/iOS/Android runtimes are still scaffold-only.

Dive in

I want to… Go here
Set up my machine Onboarding guide (Dev Containers)
Send a change Contributing
See what’s planned Roadmap · Tasks
Learn the domain Domain model
Read architecture decisions ADRs
Report a vulnerability Security

Community: Contributors · Code of Conduct · MIT License

Repository map

apps/api           Go API              (skeleton: /health)
apps/web           Next.js web         (scaffold)
apps/ios           SwiftUI             (scaffold)
apps/android       Compose             (scaffold)
brand/             marks, icons, lockups, social preview
packages/          contracts, tokens
docs/              roadmap, onboarding, agents, ADRs
.devcontainer/     Dev Container (Go + Postgres)
skills/            portable Agent Skills
.github/           CODEOWNERS, PR template (see ABOUT.md)

For coding agents

Start at AGENTS.md. Details in docs/agents/. Skills in skills/. Harness adapters (CLAUDE.md, .cursor/rules/, …) are pointers only — don’t fork the rules.


Built for the pool deck — not the paywall.

About

An open-source platform for swim teams to manage swimmers, meets, results, and team performance.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages