About this project — I'm not a developer. I'm a competitive shooter who got frustrated with the state of match management tools and decided to build something. Most of this code was vibecoded with Claude and a lot of trial and error. It's running as a beta at makereadyapp.com, but it is not production-ready software — there are rough edges everywhere and plenty I don't know enough to do well.
I'm open-sourcing it so that actual developers, coders, and software engineers in the shooting community can take it somewhere better. Fork it, rewrite it, tear it apart — do whatever makes it useful. GPLv3; it belongs to the community now.
Open-source competitive shooting match platform. The web app is the shooter- and match-director-facing side: match discovery, registration, results, profiles, and club management.
Companion mobile app (match-day scoring, offline-first): MakeReady.Mobile.
Hosted beta: makereadyapp.com
- IDPA — time-plus scoring, 5x5 classifier, eight divisions
- USPSA — hit factor scoring, classifier lookup from the official classifier set
- Steel Challenge — best-N-of-strings scoring, peak-time classification
- PCSL — stage editor in place, full scoring support in progress
- Next.js 16 (App Router) + React 19 + TypeScript
- Tailwind CSS v4
- Supabase (Postgres + auth + RLS)
- Deployed on Vercel
git clone git@github.com:MakeReadyApp/MakeReady.Web.git
cd MakeReady.Web
npm install
cp .env.local.example .env.local # fill in your Supabase URL + anon key
supabase link --project-ref <your-project-ref>
supabase db push # applies all migrations
npm run dev # http://localhost:3000See docs/self-hosting.md for the full walkthrough — creating a Supabase project, loading seed data, configuring auth, pairing the mobile app, and troubleshooting.
- Source of truth for: match creation, registration, club management, published results
- Shares a Supabase project with the mobile app — scoring data syncs up from tablets
- Server components handle data fetching; server actions handle mutations
- Row-Level Security enforces club staff, MD, and shooter roles at the DB layer
Issues and PRs welcome. Please open an issue first for anything larger than a small fix so we can align on approach.
GPLv3. Contributions are accepted under the same license.