Save it once. Spin it up in ten seconds.

Save any finished tournament or league as a reusable blueprint. Every config decision — format, divisions, fees, default times, content sections, league season defaults — copies over. New instances ask for name and start date. That's it.

One bookmark icon, two templates

Every tournament and league admin page surfaces a Save as template button. Click it and pick a name. Templates have two visibility tiers:

Personal

Only you see the template in the library. Your private playbook of proven event setups.

Club-shared

Every admin of the club can use it. A senior operator codifies "how we run our Saturday tournaments" for the rest of the team.

How it actually works

  1. Build your event the normal way. Set up your weekly league or monthly tournament with all the divisions, fees, content sections, and times you want.
  2. Click Save as template. The bookmark button on the show page (or the 3-dots menu on the index). Pick a name and visibility.
  3. Find it in the library. Programs → Templates. Three tabs (Tournaments / Leagues / Events). Each card shows divisions count, usage_count, last-used date.
  4. Click Use to instantiate. Modal asks for name + start date. Everything else copies from the template — time offsets stay relative to your new start.
  5. Land on the new event's edit page. All fields pre-filled. Make any last-minute tweaks and save. Player-facing in seconds.
  6. Update or re-save. Click Save as template again on the source event — the system detects the existing template and asks whether to Update existing or Save as new.

What's built in

  • Time offsets are relative. A division that started 2 hours after the earliest in the template stays 2 hours after the new anchor. Different start time, same proportional spacing.
  • Caps prevent runaway growth. 100 templates per club. 50 personal templates per user. Plenty of headroom without library bloat.
  • "Start from a template" picker on New Tournament. Skip the form entirely. Pick a card, name the event, set the date, done.
  • Re-save flow is explicit. If you've saved this event as a template before, the modal asks: Update existing (preserves usage history) or Save as new (creates a second one). No silent duplicates.
  • Atomic usage counter. Every instantiation does a single DB-level UPDATE — no Ruby-side race conditions, no callback re-fires. Built for concurrent ops on busy event days.
  • Soft-fail on missing references. Templated location no longer exists? The new event is created without one, and you pick a fresh location in the editor. No mysterious errors.
  • Platform-owner adoption metrics. /platform_owner/templates_dashboard shows total templates, instantiations, adopting clubs, and the most-used templates across the network.
  • Acquirer-grade test coverage. 80+ specs across builder + instantiation services, controller endpoints, render-smoke, system-level Capybara walks. Two end-to-end JS flows verify the Stimulus glue.

Why it matters

Most clubs and organizers run the same event over and over — the Wednesday 3.5 league, the monthly Saturday MLP, the quarterly singles bracket. Rebuilding the setup form every time is the highest-leverage time sink in admin work.

  • 10× faster setup for recurring events. What used to be a 15-minute form-fill is now a 30-second name + date entry.
  • Fewer setup mistakes. Proven configs get reused. The "wait, I forgot to set the refund policy" rebuild after the first registration disappears.
  • Cross-admin consistency. Club-shared templates let a senior admin codify the right way to set up an event — the junior admin gets it right by default.
  • Lower onboarding cost. New club admins start with a curated template library instead of a blank form. The platform feels lived-in from day one.

Available on every plan

Tournament & League Templates ship free — no tier gate. Save any event today, spin up tomorrow's instance in seconds.

Open your club admin →