Atlas / tournament documentation
Organization and account
Creating an organization, its five setup steps, the organization console, roles, profile, logo and colors, Stripe payments and the people who administer it.
An organization is the league, school or program that hosts tournaments. Every tournament belongs to one organization, and the organization's owners and admins can create and run all of them. This page covers the platform screens around an organization rather than a tournament admin screen: creating the organization at /organizations/new, the setup wizard at /organizations/<slug>/onboarding, and the organization console at /organizations/<slug>/admin, which holds the dashboard and five settings screens. Signed-in people reach the console from /organizations/admin, a list of the organizations the account administers. An account with exactly one organization is sent straight to that organization's console.
Who can use it
| Role | What it can do |
|---|---|
| Any signed-in account without an organization | Create one organization at /organizations/new. A signed-out visitor is sent to sign in first. |
| Owner | Everything an admin can, and also adds and removes organization admins on Access, and sends, resends and withdraws invitations. An owner cannot remove their own seat, and cannot remove another owner. |
| Admin | Opens the console, edits League profile, Branding and Billing, connects Stripe, creates tournaments, runs every tournament of the organization, and holds Connectivity keys and webhooks. Cannot add or remove people. |
| Settings only | Appears in the roster as Settings only. Opens the console and its settings screens. Is turned away from tournament consoles, which redirect to the dashboard with the note that tournament access is still being prepared. Cannot create tournaments, since the database refuses it. |
| Platform admin | Treated as an owner on every organization: reads all organizations, adds and removes owners and admins, and is the only role that provisions organizations, turns a Connectivity switch on or sets its limits. |
| Tournament seat holders, coaches, competitors, judges | No access to the console. Seats inside one tournament are separate. See Roles and permissions. |
The Access screen has no control that grants the Settings only role. That role is shown in the roster when an account holds it, and adding the same account by email upgrades it to a full admin.
Create an organization
The page is titled Create an organization, with the line that the creator becomes its owner-admin immediately.
| Control | What it does | Default or limit |
|---|---|---|
| Organization name | The league's display name. Placeholder: Acme Debate League. | Required; 1 to 120 characters after trimming |
| Subdomain | The short address name, called the slug. The tournament pages of the organization are listed at the slug followed by the platform's root domain, shown beside the field. A line under the field confirms the address once the slug is valid. | Required; 3 to 63 characters; lowercase letters, numbers and hyphens; cannot start or end with a hyphen; not on the reserved list |
| Create organization | Creates the organization and seats the creator as its owner. Reads Creating… while running. | Disabled until both fields are valid |
The foot of the form reads: One organization per account, slug can't be changed after creation. The slug is stored in lower case. These names are reserved: www, api, app, admin, root, mail, ftp, smtp, imap, pop, ns1, ns2, autodiscover, cpanel, webmail, static, assets, cdn, docs, status, support, help, blog, dashboard, portal, meridian, meridianco, meridiandebate, localhost, test, staging, dev, demo, null, undefined, true, false, tournaments and passage.
After creation the page shows Organization created with the organization's name, the Subdomain address, and two links: Set up followed by the organization's name, which opens the setup wizard, and Go to the dashboard →, which opens the console. An account that already administers an organization sees You already administer an organization, with the line that each account can self-serve one organization and a link Go to tournaments →.
Meridian staff can provision an organization instead at /organizations/provision, titled Provision an organization. It asks for Organization name, Subdomain and Prospective owner-admin email, then creates the organization and emails the person an invitation. Only a platform admin can open it. Submitting the same slug with the original admin email recovers the assignment or sends a fresh invitation.
The five setup steps
The setup wizard is titled Set up followed by the organization's name, with the line A few details now make every tournament easier to launch. A progress bar shows five steps and a counter such as 1 / 5. Creating a tournament is blocked until the wizard is finished: the create page sends the visitor back to the wizard. An admin invited to an organization that is already set up skips the wizard and opens the console.
| Step | Fields and buttons | Rules |
|---|---|---|
| Profile | About your organization, a text area with the placeholder A short description of your league or program. Tournament contact email. Button: Save and continue. | Both required. The description holds up to 2000 characters. The email must look like an address. |
| Events | Offered events, a text area with one event per line. Heading: What do you run? Buttons: Back and Save and continue. | At least one event. Events are split on new lines and commas and duplicates are dropped. |
| Defaults | Heading: Choose a starting default. Four buttons: Team Policy, Lincoln-Douglas, Moot Court and Parliamentary. The chosen one shows Selected. Buttons: Back and Continue. | Optional. The choice is saved on the organization at once, on any device. It fills Format and the first event when creating a tournament. |
| Review | A summary of Organization, Contact, Events and Starting format, which reads Choose later when none is picked. A checkbox: This looks right. I can change these details later. Buttons: Back and Continue. | Continue stays disabled until the checkbox is ticked. |
| Payments | Heading: Payments, when you're ready. Connect Stripe, or the line Stripe is connected. Buttons: Back and Finish setup. | Optional. Finish setup is disabled until the description, a valid contact email and at least one event are filled in. |
Finish setup marks the organization as set up and opens the console with a short guide titled Welcome to your league workspace. The guide has four screens: the welcome, Complete your league profile, Make the workspace yours and Connect payments when ready. Its buttons are Back, Next, Skip guide and Finish guide. Finishing or skipping records that the guide was seen, so it does not open again on any device. The Payments step also links to the guide to running a first tournament.
Payments and Stripe Connect
Stripe Connect lets registration fees be collected by card and routed to the organization. Connecting is optional. Billing at /organizations/<slug>/admin/billing holds the control, and the wizard's Payments step holds the same button.
| Status | What it shows | Meaning |
|---|---|---|
| Not connected | Connect Stripe button | Stripe Connect onboarding has not been started. Entry fees are tracked by hand. |
| Onboarding in progress | Connect Stripe button | Onboarding has started. Finish verifying with Stripe to collect entry fees; until then they are tracked by hand. |
| Connected | No button | Ready to collect competitor registration fees. |
| Action required | Connect Stripe button | Stripe needs more information before fees can be collected. |
Connect Stripe opens Stripe's own onboarding page and reads Opening Stripe... while it works. On return the dashboard notes that Stripe onboarding was saved and that verification can take a moment. A link that expired shows: That Stripe link expired before onboarding was finished. Press Connect Stripe on Billing to continue where you left off. Until Stripe is connected, registration checkout falls back to manual payment tracking: a tournament admin marks entries paid by hand.
Billing also shows a Subscription plan panel. It reads No plan yet or the plan name. The page states that plan pricing is not live, with no invoices and no renewal date. The dashboard's Subscription panel carries a View invoices link to the same screen, which has none.
The organization console
The console has a left rail headed Meridian / Organization with the organization's name and address. Under Organization the rail lists Dashboard and Tournaments, with a count. Under Settings it lists League profile, Branding, Billing, Access, with a count of people, and Connectivity. The foot of the rail shows the Plan and a sign out control.
Dashboard
- Lede. A line such as the number of tournaments hosted since the first year, how many are live now, and a note that every item links to the one place it can be fixed.
- Progress. Four phases: Profile, Branding, Payments and Live. A next action appears for the first one not done: Finish the league profile with Edit profile, Set the league's colors and logo with Edit branding, Connect Stripe to collect entry fees with Connect Stripe, or Finish organization setup with Continue setup. Profile counts as complete once a contact email and at least one offered event exist. Branding counts as complete once a logo or either color is set.
- Figures. Tournaments hosted, Active program and Entries this season. Entries this season counts entries in the organization's tournaments that start in the current calendar year, and is left out when it cannot be read.
- Tournament program. Headed Manage a tournament, with a Create tournament button. Each tournament row shows its name, dates, location, a status chip and Open admin. When there are none, the page reads Your organization does not have a tournament yet.
- League configuration. Four panels: League profile, Branding, Competitor payments and Subscription, each with its link.
- Recent activity. A Trail of the latest six audit entries across the organization's tournaments. The full trail lives in each tournament's Records screen.
Create tournament opens a pane in place. See Creating a tournament.
League profile
The League profile screen is titled League profile and saves with Save league profile. A saved profile shows League profile saved.
| Control | What it does | Default or limit |
|---|---|---|
| League description | Text about the organization. | Optional; up to 2000 characters |
| Events your league offers | One event per line, shown as defaults for future tournaments. Placeholder lines: Team Policy, Lincoln-Douglas, Public Forum. | Up to 20 events of 100 characters each |
| Tournament contact email | Where tournament questions are routed. | Optional; must look like an address when filled |
Branding and logo upload
Branding sets the logo and two colors for every public tournament page of the organization. Branding is not set per tournament. Save branding saves all three together, and the page then reads: Branding saved. Every public tournament page owned by this league uses it now.
| Control | What it does | Default or limit |
|---|---|---|
| Upload logo | Opens a file chooser and uploads the chosen image at once. Reads Uploading... while it runs, and Replace logo once a logo is set. | PNG, JPEG, WebP or GIF, up to 2 MB, not empty. SVG is refused. |
| Remove logo | Clears the logo field. Appears once a logo is set. Takes effect when Save branding is selected. | Link |
| Logo preview | The logo on a light and on a dark background. | Appears when the field holds an address that loads |
| Or paste the logo's address | An https address of an image, as an alternative to uploading. An upload fills this field with its public address. | Optional; https only; up to 2048 characters; no spaces or credentials |
| Primary color | A color picker and a text box. | Optional; six hex digits such as 1F6F5C; three digits are widened; blank means the default |
| Accent color | A color picker and a text box. | The same rules as Primary color |
| Save branding | Saves the logo address and both colors. Disabled while an upload runs. | Reads Saving... while running |
An upload only places the image in storage and in the field. The logo is not used by public pages until Save branding is selected. A new upload gets a fresh file name, so an old cached logo is not shown.
Access and members
Access lists everyone who administers the organization, with the date each seat was granted, a role chip of Owner, Admin or Settings only, and a You marker on the viewer's own row. Owners and platform admins also see Add an admin and an Invitations list.
| Control | What it does | Default or limit |
|---|---|---|
| Email and Add org admin | Seats an existing account as an admin at once, or emails an invitation to a new address. | Owners and platform admins only; a valid address; people added this way are admins, not owners |
| Remove | Removes a seat after a confirmation. The person loses the console and the organization's tournaments at once and any invitation they hold is withdrawn. | Not available on the viewer's own row; an owner's seat is removed by a platform admin only |
| Resend | Sends an invitation again with a fresh link. | Shown for open and expired invitations |
| Withdraw | Withdraws an invitation after a confirmation. Its link grants nothing. | Shown for open and expired invitations |
An invitation works for 14 days from when it was last sent. The list shows each invitation as Sent with a date, and its standing as Expires with a date, Expired with a date, Accepted, or Withdrawn. An invited person opens the emailed link, sets a password of at least 8 characters on Set up your organization access, and enters the organization's workspace. This account is for organization administration. An admin who is not an owner sees: Only an owner of this organization or Meridian can add or remove admins. Ask an owner to make the change.
Connectivity
Connectivity holds machine access to the organization's tournaments. Meridian turns the switches on with a league licence. Owners and admins create and revoke keys, can turn any switch off, and open the webhook endpoints and the delivery log. The switches are Read API, Webhooks, MCP reads and MCP write proposals, the last of which is listed as not built yet. The screen also shows the limits Requests per minute, per key and MCP write proposals per hour. A key is created for at least one scope, can be set to expire Never, In 30 days, In 90 days or In a year, and an organization holds at most 25 live keys.
Tasks
Create and set up an organization.
- Sign in and open
/organizations/new. - Enter Organization name and Subdomain. Select Create organization.
- Select Set up followed by the organization's name.
- Fill the Profile, Events, Defaults and Review steps, selecting Save and continue or Continue on each.
- On Payments, select Connect Stripe or leave it for later, then select Finish setup.
The console opens with the welcome guide. Create a tournament is now available.
Upload the league's logo.
- Open the console and select Branding.
- Select Upload logo and choose a PNG, JPEG, WebP or GIF of 2 MB or less.
- Check the two previews.
- Select Save branding.
The page reads Branding saved, and every public tournament page of the organization uses the logo.
Add an administrator.
- Open the console as an owner and select Access.
- Enter the person's email under Add an admin. Select Add org admin.
- For a new address, watch the Invitations list. Select Resend if the email was not received.
An existing account is seated at once and the page reads Organization admin access granted. A new address reads Invitation sent. Access is granted when they accept the link in the email.
Troubleshooting
| Message | What it means | What to do |
|---|---|---|
| Organization name must be between 1 and 120 characters. | The name is empty or too long. | Correct Organization name. |
| Subdomain must be 3 to 63 characters: lowercase letters, numbers, and hyphens only, and cannot start or end with a hyphen. | The slug breaks the shape rule. | Correct Subdomain. |
| That subdomain is reserved. Please choose another. | The slug is on the reserved list. | Choose another subdomain. |
| That subdomain is already taken. Please choose another. | Another organization uses the slug. | Choose another subdomain. |
| You already administer an organization. Contact support to set up another. | The account already holds a seat in an organization. | Use the existing organization, or ask Meridian to provision another. |
| Too many creation attempts. Please wait a few minutes and try again. | The creation limit for this account and address was reached. | Wait and try again. |
| Add a short description for your organization. | The Profile step was submitted without a description. | Fill About your organization. |
| Enter a valid tournament contact email. | The contact email does not look like an address. | Correct the email. |
| Add at least one event. | The Events step has no event. | Enter one event per line. |
| Choose one of the starting formats. | The saved choice was not one of the four formats. | Choose a button on the Defaults step. |
| Your starting format was not saved. Try again. | The choice could not be stored. The last saved choice returns. | Choose again. |
| You do not have admin access to this organization. | The account is not an admin of the organization. | Sign in with an owner or admin account. |
| Payments can't be connected right now. Your setup is saved; try Connect Stripe again later from Billing. | Stripe's onboarding link could not be created. | Try again later from Billing. |
| Too many attempts. Please wait a while and try again. | The Connect Stripe limit was reached. | Wait and try again. |
| League description must be 2,000 characters or fewer. | The description is too long. | Shorten it. |
| List up to 20 events, each 100 characters or fewer. | Too many events, or one is too long. | Shorten the list. |
| Enter a valid contact email or leave the field blank. | The profile email does not look like an address. | Correct or clear it. |
| Logo URL must be an https:// address, such as https://example.org/logo.png. | The pasted address is not https or has a space. | Paste a correct https address. |
| Primary color must be a six-digit hex color, such as 1F6F5C, or left blank. | The color is not hex. The accent color has the same message. | Enter six hex digits or clear the field. |
| The logo must be a PNG, JPEG, WebP or GIF image. | The file type is not allowed. | Export the logo as a PNG. |
| SVG logos can't be uploaded. Export the logo as a PNG and upload that. | SVG is refused. | Export a PNG. |
| The logo must be 2 MB or smaller. | The file is too large. | Reduce the image size. |
| That file is empty. | The file has no content. | Choose another file. |
| Only an admin of this organization can upload its logo. | Storage refused the upload for this account. | Sign in with an admin account. |
| That file couldn't be read as an image. Try exporting it again as a PNG. | The upload stored a file that does not display. | Export again as a PNG. |
| The logo could not be uploaded just now. Try again, or paste an address instead. | The upload failed for another reason. | Retry or paste an address. |
| Only an owner of this organization or a Meridian head admin can add organization admins. | The viewer is not an owner. The same message form covers remove admins, send invitations and withdraw invitations. | Ask an owner. |
| Enter a valid email address. | The Access email does not look like an address. | Correct it. |
| That invitation was already accepted. | Resend was pressed on an accepted invitation. | No action needed. |
| That invitation was withdrawn. Add the email again to invite them. | Resend was pressed on a withdrawn invitation. | Add the email again. |
| The invitation was created, but its email did not send, followed by a reason | The record exists but the email failed. | Select Resend. |
| This invitation has expired | The invited person opened the link after 14 days. | Ask an owner to add the email again. |
| This invitation was withdrawn | An owner withdrew it or removed the seat. | Ask an owner to add the email again. |
| Passwords do not match. | The two invitation passwords differ. | Retype them. |
| Use at least 8 characters. | The invitation password is shorter than 8 characters. | Choose a longer password. |
| Tournament access for this organization is still being prepared. | A Settings only member opened a tournament console, or tried to create a tournament. | Ask an owner to make the account a full admin. |
Limits and notes
- An account can create one organization through the self-serve page. A platform admin provisions further ones.
- The slug cannot be changed after creation, and the organization's name has no edit screen in the console.
- Organization sign in at
/organizations/loginis by invitation only and offers no sign up. - The dashboard's View invoices and Manage payouts link labels both open Billing. Billing shows no invoices and no payout list.
- Billing says admins mark registrations paid by hand from a tournament's Registrations screen. In the current tournament console the same action lives in Field.