App Settings
Go to Admin → Integrations to configure comms credentials, AI, and payment integrations.
Club Settings
| Key | Description |
|---|---|
SMTP_FROM_NAME | Your club or school name — shown in email From headers and resolves {{SMTP_FROM_NAME}} in templates |
VENUE_ADDRESS | Training venue address — resolves {{VENUE_ADDRESS}} in comms templates |
INSTRUCTOR_PHONE | Instructor phone number — resolves {{INSTRUCTOR_PHONE}} in comms templates |
INSTRUCTOR_EMAIL | Instructor email address — resolves {{INSTRUCTOR_EMAIL}} in comms templates |
Trial Booking Settings
| Key | Description |
|---|---|
TRIAL_FORM_ENABLED | true / false — set to false to disable the public /join booking form |
TRIAL_FORM_ATTIRE_ITEMS | JSON array of strings shown as checkboxes on the booking form. Defaults to three standard attire/punctuality items if not set. |
Comms Settings
Configure SMTP (email) and Twilio (SMS) credentials. See Comms Setup for a full walkthrough.
Test Mode — when on, all comms are redirected to your test email/phone (set in Admin → Comms → Variables as TEST_EMAIL and TEST_PHONE). All message subjects and bodies are prefixed with [TEST]. Switch off only when ready to send to real students and parents.
Sensitive keys (API tokens, passwords) are masked in the UI after first entry — showing only the first and last 4 characters. To update a masked value, type the new value directly over it. Pasting the masked value back makes no change.
AI Settings
| Key | Description |
|---|---|
AI_PROVIDER | anthropic or openai |
AI_MODEL | Model name e.g. claude-sonnet-4-5 |
AI_API_KEY | API key — masked after entry |
GoCardless Settings
Configure your GoCardless Direct Debit integration for the membership mandate flow.
| Key | Description |
|---|---|
GC_ENABLED | true / false — enables the GoCardless mandate flow on the membership form |
GC_ENVIRONMENT | sandbox (testing) or live (real mandates) |
GC_ACCESS_TOKEN | Your GoCardless API access token — masked after entry |
GC_WEBHOOK_SECRET | Webhook signing secret from the GoCardless dashboard — used to verify mandates.active events |
See Membership & Direct Debit for the full setup walkthrough.
Membership Fee Settings
| Key | Description |
|---|---|
MEMBERSHIP_FEE_SNAKES_CRANES | Monthly training fee for Snakes & Cranes class (£) |
MEMBERSHIP_FEE_JUNIORS | Monthly training fee for Juniors class (£) |
MEMBERSHIP_FEE_TEENS | Monthly training fee for Teens class (£) |
AFFILIATION_FEE_JUNIOR | Annual membership / insurance fee (£) |
UNIFORM_STORE_URL | Optional URL to kit store — shown on membership confirmation page |
Airtable Settings
Used by the Airtable Sync import flow. Credentials are saved automatically when you connect via Admin → Import → Airtable — you don't normally need to set these manually.
| Key | Description |
|---|---|
AIRTABLE_PAT | Personal access token — masked after entry. Requires data.records:read and schema.bases:read on the base. |
AIRTABLE_BASE_ID | Airtable Base ID (starts with app) |
AIRTABLE_TABLE_ID | Table name or Table ID (starts with tbl) |
See Airtable Sync for a full setup walkthrough.
Club Type Settings
Read-only settings that describe how your instance is configured. Set when your instance is deployed — contact [email protected] to change them.
| Key | Values | Description |
|---|---|---|
CLUB_TYPE | standalone / franchise_lead / franchise_member | Whether this school manages its own curriculum, leads a franchise group, or inherits from a franchise group |
FRANCHISE_NAME | String | Display name of the franchise group (franchise members only) |
FRANCHISE_PACK | String | The curriculum pack identifier loaded into this instance |
FRANCHISE_VERSION | String | Version of the curriculum pack currently active |
See Club Type & Franchise for full details on what each setting means in practice.