Feature Friday #5: event roster, RSVP, phone app, 38 fixes
This week, Ulti-Mate shipped: one event roster that follows an event from invite to attendance, a rebuilt RSVP, the team switcher in the sidebar, and 38 fixes.
This week (August 21-27) we shipped: one event roster that follows an event from invite to attendance, an RSVP rebuilt around a single control, the team switcher moved into the sidebar, Ulti-Mate on your phone's home screen, and 38 smaller fixes.
Event roster

An event page used to keep two lists: one for who had answered, one for who turned up. There's one now, and its heading changes as the event does - "Who's coming" before it starts, "Who's here" while it's running, "Who was there" once it's over.
It breaks down by team role, so you can see at a glance that eight of your eleven players are in and both coaches are out. On a mixed team it also breaks down by matching player - MMP and FMP, the WFDF terms - which is a field on your profile now. Everyone invited can read the attendance, not just leadership; who was marked absent stays between that player and the coaches.
Names link to profiles. Events is still in beta, so tell us what your team counts that we don't.
RSVP

Answering an event used to take two controls that set the same field: three buttons, and a "Status" dropdown underneath whose first option had to apologize for it. One control now - Going, Maybe, Can't go - and it saves the moment you press it.
The follow-ups belong to the answer. Say you're going and you can add that you're arriving late, and at what time; leaving early, and when; injured; not playing. None of that means anything on a "Can't go," so none of it appears on one. Under the control is a line naming who reads what you wrote, since a note on an RSVP goes to everyone who can see the event.
The states that aren't yours to pick stopped being offered. On the waitlist, or taken off the event by a captain, the control says so and who did it - rather than putting "Removed" in a menu for you to choose about yourself. And backing out after you'd said yes reads differently to your captains than never answering; you press the same "Can't go" either way, and the app works out which it was.
Team switcher

The team card moved out of the topbar and into the sidebar, sitting above the team's own pages. The breadcrumb starts at the page you're on now instead of leading with the club name every time.
The card carries the team's logo, its name, the season, and which roles you hold there - "Spring 2026 · Admin/Player", not just one of the two if you're an admin who also plays. Click it and the team list opens beside the rail; on a phone the drawer steps into it. The account menu went the other way, up into the topbar.
Canceling an event
Canceling asks why: weather, the venue, turnout, or something else. The event page then says which - and who called it, and when - instead of leaving a struck-through title for people to interpret. When weather is the reason, the forecast that made the call saves with the event.
Recurring events say "recurring" in words now, and rebuilding a series no longer resurrects an occurrence you had already canceled. Admins can delete an event outright, for the one created by mistake - canceling stays the right answer for an event that was real.
Ulti-Mate on your phone
If your phone can install the app, Home offers to - and there's a row in Preferences the rest of the time. Installed, it opens on its own, without the browser's chrome around it.
Modals come up as bottom sheets on a phone now, and drag down to dismiss. Toasts flick away sideways. The photo cropper takes a pinch.
Smaller fixes
- The month calendar fills the page and works on a phone - a busy day caps its list, and the peek you open stays beside the row you clicked.
- Schedule rows lead with a date tile and are real links, so middle-click opens one in a tab. There's a When filter, and an event running right now says so.
- Search matches what the row actually shows, so a location you know by the name on its card turns up when you type it. The topbar search box, which never searched anything, is gone.
- Activities, film, and locations page through their lists instead of drawing a season of cards at once, and sort by when they were added or by how much conversation they've collected.
- A venue's page shows what's coming there beside what's already been played, and "Next here" counts only events you're invited to.
- App links got shorter - the `/v1` sitting in the middle of every URL is gone.
- Admins can delete an activity, film, or location for good. Archiving is still what you want for anything the team might run again.
- Coaching programs bill at the education rate.
- A second round of motion work: filtered lists re-form when you change the filter instead of teleporting, empty states arrive the way results do, and the theme crossfades.
- An accessibility round: a sorted table says which column it's sorted on, the focus ring is an outline you can see in both themes, and every form control has an id, so autofill behaves.
- A speed pass: static files stopped being re-checked on every load, and event pages stopped subscribing to things nobody was looking at.
- A backend pass: the rule that freezes a finished event is enforced on the server, not just in the app, and a list that hits its read limit says so instead of reporting a short count.
- Plus the rest - 38 fixes in all this week, and the running list is in #changelog in the Discord.
What we're working on next
A drill importer, rolling out in beta as this post goes up. Paste in a page of drills, or hand it a PDF - typed or scanned - and it reads them out one at a time for you to check before any of them land in your Library. It's what the r/ultimate thread asked for. Too new for a section of its own this week; the full writeup lands here next Friday.
Tell us what your team needs - the Discord or feedback@ulti-mate.app.
— Victor