The Mixer — live round-robin generator

Managing mixer sessions

How to create, switch, rename, delete, and cloud-sync mixer sessions — including sessions shared with co-organizers — plus what happens when a mix was started without a group.

A session holds your roster, game history, and settings for one mixer context — one night, one group, one court setup. Keep several around at once, hop between them without losing anything, and (if you're logged in) back them up to the cloud.

Opening the Sessions modal

The header has two buttons side by side: Sessions and New. Sessions opens the full modal where you can browse, switch, rename, delete, and manage cloud sync. New creates a fresh session immediately — no modal required. Both are visible on every page of the mixer.

What the modal shows

The modal has up to two sections.

Your Sessions lists every session stored locally on this device for your active group. The active one appears first with an "Active" badge. Each card shows the session name, player count, highest game number reached, the last mix time, and the last time you opened it. Up to five player names appear inline; tap "+ N more" to see the full roster.

Available in Cloud (logged-in organizers only) shows cloud sessions not yet downloaded to this device. You can load and activate one directly from there. This list covers the whole group: sessions saved by the group's other organizers appear here too, marked with a "👤 Saved by name" badge (see Sessions shared with co-organizers below).

A counter in the "Your Sessions" header shows how many sessions you have locally and in the cloud against your per-user limit. When you're logged in, a cloud count like "☁️ 2/3" sits next to the local count. The cloud count tracks only sessions you saved — colleagues' sessions in the group never consume your allowance.

Creating a session

Click + New inside the modal — or the New button in the header — to start fresh. If you're already at the session limit, the new session replaces the oldest one; the modal warns you before proceeding.

Each new session opens blank: no players, no games. Your current Mixer settings (court count, algorithm weights) carry over by default, and a confirmation dialog lets you reset them to defaults instead.

Switching between sessions

Click Activate on any non-active session card. The mixer swaps to that session's roster and game history immediately — your previous session stays saved. Cloud-only sessions show Load & Activate instead, which downloads the session and makes it active in one step.

Renaming and deleting

Click the pencil icon (✏️) on any local session card to rename it. The name field becomes editable; press Enter or click away to save, Escape to discard.

Each card also has a 🗑️ button. For local sessions it removes from this device; for cloud-only sessions it deletes the cloud copy after a confirmation. Deletion is permanent.

Cloud sync (logged-in organizers)

When you're logged in with an active group, the active session's card gains two buttons:

  • ☁️ Save — pushes your current session to the cloud. If you've hit the cloud limit, you'll be asked which older session gets replaced.
  • 🔄 Refresh — pulls the cloud version down and overwrites your local copy. A confirmation warns you that local changes will be lost.

Cloud sessions not accessed in 30 or more days are automatically removed; the notice at the bottom of the modal reminds you of this.

Sessions created while logged out carry a "No Group" badge. They aren't counted against the group limit and won't sync until you move them into a group (see below).

Sessions shared with co-organizers

Cloud sessions are shared across a group's organizers. Every organizer of a group — the owner and any sub-organizer, including parent-group sub-organizers on a ladder's divisions — sees all cloud sessions saved into that group, not just their own. Sessions saved by someone else carry a "👤 Saved by name" badge in the "Available in Cloud" list.

This is how a club with several organizers hands off a night: one organizer builds the roster and settings and saves to cloud, another loads it on their own device and runs the event — no shared login, no risk of overwriting each other's work.

Loading a colleague's session creates your own copy. When you load a session saved by another organizer, it imports locally as "original name (copy)" and is not linked to the original cloud session. A notice confirms it:

Loaded a copy of "name" (saved by owner). Saving to cloud will create your own copy — the original stays untouched.

When you later cloud-save that copy, a new cloud session is created under your account; the original is never overwritten. Only a session's creator can save changes back into their own cloud session.

A few more rules of the shared model:

  • Rename and delete — any organizer of the group can rename or delete any cloud session in it, the same trust model as the rest of group management.
  • Moving a session to a different group stays creator-only.
  • Your limits are your own. The "☁️ N/max" counter and the cloud session cap count only sessions you saved. Colleagues' sessions don't use up your allowance, and the at-limit "replace oldest" flow only ever replaces your oldest session.
  • Ungrouped sessions stay private. Sessions saved with no group attached are visible only to their creator.
  • Sharing stops at the group boundary. Sessions are only visible to organizers of the group they're saved in — never across unrelated groups or to non-members.

The "This mix isn't in a group" prompt

Mixing while logged out — or before your active group loaded — leaves the session with no group attached. The next time you open the mixer logged in with a group active, a prompt appears: This mix isn't in a group. Three choices:

Option What it does
Move it into your group Stamps the session with your active group. Players get name-matched against that group's roster; games will count toward its ratings.
Trash it and start a new mix Deletes the ungrouped session and creates a fresh blank one for your active group.
Leave it ungrouped Does nothing now. The prompt won't reappear for this session. Switch to the group you want first — that's the one its players and games will be saved into.

Empty ungrouped sessions are left alone (harmless). The prompt only fires when the session has players.

Opening the Sessions modal directly

Add ?openSessions=1 to the mixer URL — useful in a bookmark or a dashboard link — and the Sessions modal opens automatically after the page loads. The parameter is stripped from the address bar so a later refresh won't re-open it.

The "Leave site?" prompt

Navigating to an external site while a session is open triggers a "Leave site?" confirmation. Internal links — the dashboard, your group pages, anything on the same domain — skip it entirely. Your session auto-saves to local storage on every change, so even if you do leave, roster and game history are waiting when you come back.

If your login expires mid-session

Before each Mix, the app checks that your login is still active (when a group is attached). If the server returns a 401, you see a Session Expired alert and are redirected to the login screen. Your local session data stays intact — log back in, return to the Mixer, and everything picks up where it left off. Anonymous (no-group) mixing is unaffected.

Active group changed in another tab

The Mixer binds itself to the group active when you first mixed or saved. If you switch groups in another tab, the mixer detects the mismatch the next time you click Mix or open score entry:

Choice What happens
Switch back Flips the active group back to the one this mixer is bound to. You stay in the same session and mix as normal.
Move here Re-stamps this session to the newly active group. Roster and game history are preserved; scores and ratings count toward the new group.
Cancel Aborts the current action. The session stays bound to the original group; switch groups via the picker before trying again.

The prompt is suppressed when you're offline or in offline mix mode.

What's next