Top SitesCurling IO

Machine Readiness

Stored receipt and evidence

Overall

20

Readable

65

Callable

0

Commerce

0

Payment

0

Machine Access

Inspect the site's MCP endpoint

Open MCP explorer

DialtoneApp can scan the stored discovery files for this domain, try the MCP initialize handshake, and show the raw protocol transcript.

Purchase boundary

read only

Control boundary

unknown

Payment rails

None

Payment providers

None

Payment methods

None

Payment protocols

None

Payment assets

None

Payment networks

None

Capabilities

None

Verified payment surface

No

Crypto only

No

Readable docs

robots, llms

Products

0

Variants

0

Priced variants

0

Currencies

0

Offers

0

Priced offers

0

Priced actions

0

Samples

Offer samples

No stored offer samples.

Samples

Action samples

No stored action samples.

Samples

Product samples

No stored product samples.

Document

llms.txt

Open llms.txt
# Curling IO Documentation

> Comprehensive documentation for Curling IO - curling registration and league management platform

- [Curling IO Documentation](/index.md)

## blog

Developer insights on building and enhancing Curling IO - architecture, features, and lessons learned

- [Curling IO Dev Blog](/blog.md): Developer insights on building and enhancing Curling IO - architecture, features, and lessons learned

### 21-reasons-ai-agents-love-gleam

Fair warning: this post contains some opinions that are going to be controversial and may not age well. Here be dragons.

- [AI Agents Love Gleam](/blog/21-reasons-ai-agents-love-gleam.md): Fair warning: this post contains some opinions that are going to be controversial and may not age well. Here be dragons.

### archive

Archive

- [Archive](/blog/archive.md): Archive

### authors

- [Authors](/blog/authors.md)

### automate-club-management-with-ai

Imagine you're a club manager setting up next season. You open your AI agent and type (or just say):

- [Automate Club Management With AI](/blog/automate-club-management-with-ai.md): Imagine you're a club manager setting up next season. You open your AI agent and type (or just say):

### background-jobs-without-the-baggage

In most web stacks, adding background jobs means adding infrastructure: Redis, Sidekiq, a separate worker process, a monitoring dashboard, another thing to deploy and keep running. Curling IO Version 2 uses Delayed Job backed by PostgreSQL, which works well but requires a separate worker daemon alongside the web process.

- [Background Jobs Without the Baggage](/blog/background-jobs-without-the-baggage.md): In most web stacks, adding background jobs means adding infrastructure: Redis, Sidekiq, a separate worker process, a monitoring dashboard, another thing to deploy and keep running. Curling IO Version 2 uses Delayed Job backed by PostgreSQL, which works well but requires a separate worker daemon alongside the web process.

### bilingual-by-design

Curling IO serves hundreds of clubs across Canada, where English and French aren't optional, they're official languages. A club in Quebec needs a fully French experience. A national organization like Curling Canada needs both. Rails has mature i18n support and Version 2 has been fully bilingual from the start, but after a decade of maintaining around 10,000 YAML translation keys, we've hit the limits of what that approach can catch: missing keys, missing translations, and unused keys that accumulate silently over time.

- [Bilingual by Design](/blog/bilingual-by-design.md): Curling IO serves hundreds of clubs across Canada, where English and French aren't optional, they're official languages. A club in Quebec needs a fully French experience. A national organization like Curling Canada needs both. Rails has mature i18n support and Version 2 has been fully bilingual from the start, but after a decade of maintaining around 10,000 YAML translation keys, we've hit the limits of what that approach can catch: missing keys, missing translations, and unused keys that accumulate silently over time.

### curling-io-powers-provincial-associations

All 14 provincial and territorial curling associations, plus Curling Canada, run on Curling IO. Here is what that means for clubs and curlers.

- [Every Provincial and Territorial Curling Association in Canada Uses Curling IO](/blog/curling-io-powers-provincial-associations.md): All 14 provincial and territorial curling associations, plus Curling Canada, run on Curling IO. Here is what that means for clubs and curlers.

### drag-and-drop-registration-forms

A first look at the drag-and-drop form builder in Curling IO v3. Club admins design registration forms by arranging questions on a visual canvas.

- [Custom Registration Forms Are Coming to Curling IO](/blog/drag-and-drop-registration-forms.md): A first look at the drag-and-drop form builder in Curling IO v3. Club admins design registration forms by arranging questions on a visual canvas.

### how-curling-canada-uses-curling-io

Curling Canada runs all of their national championships through Curling IO, from the Brier to the Scotties to the Trials. The same platform is available to any curling club.

- [How Curling Canada Uses Curling IO for National Competitions](/blog/how-curling-canada-uses-curling-io.md): Curling Canada runs all of their national championships through Curling IO, from the Brier to the Scotties to the Trials. The same platform is available to any curling club.

### live-admin-without-javascript

Curling IO's admin panel has dozens of pages: product configuration, discount rules, affiliate fees, registrations, event scheduling, reports. In Version 2, every form submission reloads the page. Click save, wait for the round trip. It works, but it's slow when you're editing multiple sections on the same product, and it makes features like live toggle switches or inline editing impossible without sprinkling in JavaScript.

- [LiveView Admin Panel w/ Gleam and Lustre](/blog/live-admin-without-javascript.md): Curling IO's admin panel has dozens of pages: product configuration, discount rules, affiliate fees, registrations, event scheduling, reports. In Version 2, every form submission reloads the page. Click save, wait for the round trip. It works, but it's slow when you're editing multiple sections on the same product, and it makes features like live toggle switches or inline editing impossible without sprinkling in JavaScript.

### page

- [Curling IO Dev Blog](/blog/page/2.md): Developer insights on building and enhancing Curling IO - architecture, features, and lessons learned

### parallel-tests-for-free

While writing the previous post about our per-test SQLite databases, I was describing how each test gets its own in-memory database, no shared connections, no shared state. And I thought: wait, if nothing is shared, can we just run them all at the same time?

- [Parallel Tests for Free](/blog/parallel-tests-for-free.md): While writing the previous post about our per-test SQLite databases, I was describing how each test gets its own in-memory database, no shared connections, no shared state. And I thought: wait, if nothing is shared, can we just run them all at the same time?

### passwordless-auth-done-right

Curling IO has been passwordless since Version 2. No passwords to remember, no passwords to steal, no password reset flows. You enter your email, we send you a short-lived login code, and you're in. It's been working well for over a decade, and for Version 3 we're keeping the same approach while fixing some rough edges and adding multi-email support.

- [Passwordless Auth, Done Right](/blog/passwordless-auth-done-right.md): Curling IO has been passwordless since Version 2. No passwords to remember, no passwords to steal, no password reset flows. You enter your email, we send you a short-lived login code, and you're in. It's been working well for over a decade, and for Version 3 we're keeping the same approach while fixing some rough edges and adding multi-email support.

### sqlite-test-isolation

Most web frameworks treat test database isolation as a hard problem. Rails has database_cleaner with three strategies. Django wraps every test in a transaction it rolls back. Phoenix does the same with its SQL sandbox. They all exist because tests share a single database server, and that shared state is the root of flaky tests and ordering dependencies, the kind where a test passes alone but fails in the suite.

- [Test Isolation for Free with SQLite](/blog/sqlite-test-isolation.md): Most web frameworks treat test database isolation as a hard problem. Rails has database_cleaner with three strategies. Django wraps every test in a transaction it rolls back. Phoenix does the same with its SQL sandbox. They all exist because tests share a single database server, and that shared state is the root of flaky tests and ordering dependencies, the kind where a test passes alone but fails in the suite.

### tags

- [Tags](/blog/tags.md)
- [2 posts tagged with "ai"](/blog/tags/ai.md)
- [8 posts tagged with "architecture"](/blog/tags/architecture.md)
- [One post tagged with "authentication"](/blog/tags/authentication.md)
- [3 posts tagged with "beam"](/blog/tags/beam.md)
- [One post tagged with "buyers-guide"](/blog/tags/buyers-guide.md)
- [One post tagged with "choosing-software"](/blog/tags/choosing-software.md)
- [3 posts tagged with "club-management"](/blog/tags/club-management.md)
- [One post tagged with "curler-database"](/blog/tags/curler-database.md)
- [One post tagged with "curling-canada"](/blog/tags/curling-canada.md)
- [One post tagged with "form-builder"](/blog/tags/form-builder.md)
- [8 posts tagged with "foundation"](/blog/tags/foundation.md)
- [8 posts tagged with "gleam"](/blog/tags/gleam.md)
- [One post tagged with "i18n"](/blog/tags/i-18-n.md)
- [One post tagged with "live-scoring"](/blog/tags/live-scoring.md)
- [One post tagged with "lustre"](/blog/tags/lustre.md)
- [One post tagged with "national-competitions"](/blog/tags/national-competitions.md)
- [One post tagged with "otp"](/blog/tags/otp.md)
- [One post tagged with "partnerships"](/blog/tags/partnerships.md)
- [One post tagged with "provincial-associations"](/blog/tags/provincial-associations.md)
- [One post tagged with "registration"](/blog/tags/registration.md)
- [One post tagged with "scaling"](/blog/tags/scaling.md)
- [2 posts tagged with "security"](/blog/tags/security.md)
- [One post tagged with "sneak-peek"](/blog/tags/sneak-peek.md)
- [3 posts tagged with "sqlite"](/blog/tags/sqlite.md)
- [2 posts tagged with "testing"](/blog/tags/testing.md)
- [One post tagged with "ui"](/blog/tags/ui.md)
- [2 posts tagged with "v3"](/blog/tags/v-3.md)
- [One post tagged with "website"](/blog/tags/website.md)

### the-next-version-of-curling-io

We're building the next version of Curling IO - same features, same experience, stronger foundation. After over a decade of serving hundreds of curling organizations across Canada, the US, and internationally, we're investing in technical upgrades that set Curling IO up for the next 20+ years.

- [The Next Version of Curling IO](/blog/the-next-version-of-curling-io.md): We're building the next version of Curling IO - same features, same experience, stronger foundation. After over a decade of serving hundreds of curling organizations across Canada, the US, and internationally, we're investing in technical upgrades that set Curling IO up for the next 20+ years.

### what-to-look-for-in-curling-club-management-software

A practical guide to evaluating club management software for curling clubs: what matters, what to watch for, and the questions worth asking before you commit.

- [What to Look for in Curling Club Management Software](/blog/what-to-look-for-in-curling-club-management-software.md): A practical guide to evaluating club management software for curling clubs: what matters, what to watch for, and the questions worth asking before you commit.

### why-we-chose-sqlite

We assumed PostgreSQL for Version 3. After a decade running Postgres in production, why would we even consider something else? We knew the tooling, the failure modes, the operational playbook. Postgres is the safe choice for good reason.

- [Why We Chose SQLite](/blog/why-we-chose-sqlite.md): We assumed PostgreSQL for Version 3. After a decade running Postgres in production, why would we even consider something else? We knew the tooling, the failure modes, the operational playbook. Postgres is the safe choice for good reason.

### why-your-curling-club-shouldnt-use-a-cms

General-purpose CMS platforms like WordPress and Joomla introduce serious security risks and maintenance burden for curling clubs. Here is what you need to know.

- [Why Your Curling Club Shouldn't Use a CMS](/blog/why-your-curling-club-shouldnt-use-a-cms.md): General-purpose CMS platforms like WordPress and Joomla introduce serious security risks and maintenance burden for curling clubs. Here is what you need to know.

## curling-club-management-software

All-in-one curling club management software. Online registration and payments, league management, club website, accounting, rental bookings, and waivers. Trusted by Curling Canada, every provincial association, and hundreds of clubs.

- [Curling Club Management Software](/curling-club-management-software.md): All-in-one curling club management software. Online registration and payments, league management, club website, accounting, rental bookings, and waivers. Trusted by Curling Canada, every provincial association, and hundreds of clubs.

## privacy

Section 1 - What Do We Do With Your Information?

- [Privacy Statement](/privacy.md): Section 1 - What Do We Do With Your Information?

## search

- [Search the documentation](/search.md)

## terms

Acceptance of Terms of this Agreement through Use

- [Registration System Terms of Use](/terms.md): Acceptance of Terms of this Agreement through Use

## docs


### accounting

- [Accounting Codes](/docs/accounting/accounting-codes.md): Overview
- [Accounting Transactions](/docs/accounting/accounting-transactions.md): Overview
- [Reports](/docs/accounting/reports.md): Curling IO produces reports that give you, the curling club manager or bookkeeper, insight into the financials and membership at your club.

### advanced

- [API](/docs/advanced/api.md): Leagues and Competitions (Events)
- [Augmenting Curler Profiles](/docs/advanced/augmenting-curler-profiles.md): Sometimes you may want to ask your curler's for some additional information, but only once per season (or lifetime).
- [CurlingSchedules.com](/docs/advanced/curlingschedules.md): Learn how to configure draws, track fairness, and manage saved schedules with the Curling Draw Schedule Builder.

### api

- [Event Details](/docs/api/event-details.md): Events are leagues and competitions.
- [Items](/docs/api/items.md): Leagues, competitions, and products can be accessed through the items API via different end points.
- [Product Details](/docs/api/product-details.md): Fetching the product

### club-management

- [Alerts](/docs/club-management/alerts.md): This is a Premium Only Feature
- [Calendar](/docs/club-management/calendar.md): Venue / Ice Booking is Premium Only
- [Club Credits](/docs/club-management/club-credits.md): Club credits allow your users to pay for your leagues, competitions, products, and fees using credit they've accrued.
- [Profiles](/docs/club-management/curlers.md): In Curling IO, profiles belong to your members themselves.
- [Custom Fields](/docs/club-management/custom-fields.md): Custom fields allow you, the curling club manager, to ask any question you like during registration or purchase of one of your leagues, competitions, or products.
- [The Dashboard](/docs/club-management/dashboard.md): When a curling club manager first logs in to the administrator area of Curling IO they will be presented with the dashboard.
- [Discounts](/docs/club-management/discounts.md): You can create discounts to reduce the cost of your leagues, competitions, and products when curler's match criteria that you specify.
- [Emails](/docs/club-management/emails.md): The Emails feature allows you to manage both broadcast emails and transactional email templates for your club. You can send announcements to your members and customize the automated emails that are sent when members make purchases, payments, and receive refunds.
- [Fees](/docs/club-management/fees.md): You can set up membership and capital improvement fees for your club.
- [Integrations](/docs/club-management/integrations.md): This is a Premium Only Feature
- [Leagues & Competitions](/docs/club-management/leagues.md): Walkthrough Video
- [Linking your Website to Curling IO Registration](/docs/club-management/linking-to-registration.md): If you are not using Curling IO to host your website, you'll still want to link to your Curling IO site for registrations.
- [Managers](/docs/club-management/managers.md): Clubs can have multiple managers for Curling IO.
- [Orders](/docs/club-management/orders.md): Walkthrough Video
- [Products and Addons](/docs/club-management/products.md): Walkthrough Video
- [Profile Fields](/docs/club-management/profile-fields.md): You can customize which fields are required, optional, or not asked for profiles at your club.
- [Programs](/docs/club-management/programs.md): Programs sit between products and events: they’re purchased like products, but run on specific dates like leagues and competitions.
- [Item Recommendations](/docs/club-management/recommendations.md): Overview
- [Registration and Results Widget](/docs/club-management/registration-widget.md): Curling IO provides two widgets you can use to embed your leagues, competitions, and product data on your website.
- [Club Settings](/docs/club-management/settings.md): You can modify all of the core operational settings for your club in this screen.
- [Sponsors](/docs/club-management/sponsors.md): This is a Premium Only Feature
- [Support and Feedback](/docs/club-management/support.md): You can submit support and feedback requests from within Curling IO. Requests submitted any other way may be missed or at a minimum will take longer for a response.
- [Waitlists](/docs/club-management/waitlists.md): Overview
- [Waivers](/docs/club-management/waivers.md): Curling IO allows you to collect legal agreements, liability releases, photo consents, and other acknowledgments from your curlers during registration. The waiver system supports both required waivers (where users must type acceptance text to continue) and optional waivers (where users can choose to accept or reject).
- [Website Hosting](/docs/club-management/website-hosting.md): Overview

### event-management

- [Bracket Templates](/docs/event-management/bracket-templates.md): This is a Premium Only Feature
- [Profiles](/docs/event-management/curlers.md): The profiles screen for an event will list all of the profiles who registered for the event.
- [Draw Schedule](/docs/event-management/draw-schedule.md): Walkthrough Video
- [Draw Schedule Templates](/docs/event-management/draw-schedule-templates.md): This is a Premium Only Feature
- [Event Managers](/docs/event-management/event-managers.md): Walkthrough Video
- [Playoff Brackets](/docs/event-management/playoff-brackets.md): Walkthrough Video
- [Registrations](/docs/event-management/registrations.md): You can manage the registrations for each of your leagues or competitions.
- [Round Robins](/docs/event-management/round-robins.md): To get to the stages screen and manage your round robins, first click on the name of a league of competition.
- [Scores](/docs/event-management/scores.md): Walkthrough Video
- [Spares](/docs/event-management/spares.md): If you enabled Sparing for your league or competitions, then you can review the spares for it on this screen.
- [Teams](/docs/event-management/teams.md): Walkthrough Video

### for-curlers

- [Curler Profiles](/docs/for-curlers/curler-profiles.md): Overview
- [Google Login Without Gmail](/docs/for-curlers/google-login-without-gmail.md): You can use a non-gmail email account to login using the "Login with Gmail" button.
- [How do I Login?](/docs/for-curlers/how-do-i-login.md): It's simple, but first you need an email address.
- [My Events](/docs/for-curlers/my-events.md): Once you've joined a league or competition with one of your profiles, either by purchasing it or via a join link from a teammate, they'll show up in this section.
- [Orders](/docs/for-curlers/orders.md): Once you've placed at least one order (registration and / or purchase) you'll be able to review your orders in this section.
- [Registering for a League](/docs/for-curlers/registering-for-a-league.md): Step by Step
- [Sparing](/docs/for-curlers/sparing.md): If your club has enabled the sparing feature for any of their leagues or competitions you will be able to select which of them you are available to spare for, which position(s) you prefer, and other notes you'd like to include.
- [My Teams](/docs/for-curlers/teams.md): Once your profile(s) has been assigned to a team in a league or competition, that team will show up in this section.
- [Waitlists](/docs/for-curlers/waitlists.md): Once a league, competition, or product runs out of space or inventory, you may be presented with an option to join it's waitlist.
- [Waivers](/docs/for-curlers/waivers.md): Your club may ask you to respond to one or more waivers before you can participate at their venue. You'll usually be asked during event registration.

### getting-started

- [Best Practices](/docs/getting-started/best-practices.md): This document is for curling club managers that are new to Curling IO or club's who's pricing, fees, or discounts have undergone significant changes for the next season.
- [Book an Onboarding Session](/docs/getting-started/book-an-onboarding-session.md): The goal of an onboarding session is to get the leagues, fees, discounts, and products setup to mirror your club's operations, and answer any questions you may have.
- [Curling Club Management](/docs/getting-started/curling-club-managers.md): Curling IO is the #1 curling club management and registration platform.
- [Frequently Asked Questions](/docs/getting-started/faq.md): How much does it cost?
- [Premium Tier](/docs/getting-started/premium.md): If your club is accepting online payments then you are already considered premium tier.
- [Pricing](/docs/getting-started/pricing.md): Run Your Curling Club for $0
- [Referrals](/docs/getting-started/referrals.md): Clubs can earn $250 for every club that you refer to Curling IO that has never used our platform before.
- [Support and Feedback](/docs/getting-started/support.md): We offer two options available for help and support with Curling IO.

### member-data

- [Import Member Data](/docs/member-data/import.md): Overview
- [Setup for Membership Associations](/docs/member-data/setup.md): Overview

Document

llms-full.txt

Not stored for this site.