Skip to content

MakeReadyApp/MakeReady.Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Make Ready — Web

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

Supported Sports

  • 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

Tech Stack

  • Next.js 16 (App Router) + React 19 + TypeScript
  • Tailwind CSS v4
  • Supabase (Postgres + auth + RLS)
  • Deployed on Vercel

Quick Start

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:3000

See docs/self-hosting.md for the full walkthrough — creating a Supabase project, loading seed data, configuring auth, pairing the mobile app, and troubleshooting.

Architecture

  • 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

Contributing

Issues and PRs welcome. Please open an issue first for anything larger than a small fix so we can align on approach.

License

GPLv3. Contributions are accepted under the same license.

Releases

No releases published

Packages

 
 
 

Contributors