Live Updates.
Direct Messages.
No Refreshing.
Game requests, change notices, and direct conversations update instantly for everyone connected — with toast notifications, unread badges, and a slide-out chat drawer that stays out of the way while you work.
Chat Without Leaving the Page
A global slide-out chat drawer lets you reply to any direct message from anywhere in the app — no navigation break, no lost context. The standalone /chat page is still there when you need more room.
- Direct user-to-user conversations across roles and schools
- Slide-out drawer available from every page in the app
- Unread message counts update in real time
- Messages deliver without a page refresh
- Clear Chat option to reset a conversation
- No duplicate conversations — one thread per contact pair
See Who's Connected Right Now
Presence indicators show which users are currently active in the app. Green means connected — so you know whether a reply is likely immediate or will wait until they're back online.
Live Presence Indicators
Green dot next to a contact name means they're connected right now. Grey means offline or inactive — available anywhere contact names appear in chat.
Unread Chat Badges
Unread counts appear on the chat drawer icon in the nav and next to each conversation. They clear automatically when you open the thread.
Game Requests and Notices Without the Refresh
When a game request comes in, a request reply is posted, or a game change notice is sent, the inbox updates live and a toast notification appears — no matter what page you're on.
- Toast notifications appear for incoming game requests, request replies, and change notices
- Separate toasts for direct chat messages — visually distinct from scheduling events
- Distinct notification sounds: one for requests/replies, one for chat
- Close button on every toast to dismiss immediately
- Inbox badge count updates live — no manual refresh needed
- All roles receive live updates scoped to what they can see
Smarter Request Handling End to End
Alongside realtime delivery, this release tightened up several request workflow rough edges — from Game Finder team resolution to the accept flow to reply threading.
Smart Team Resolution in Game Finder
When sending a request from Game Finder, the source team is resolved by matching sport, level, season year, and school — so the right team prefills automatically instead of requiring a manual selection.
Accept Opens Add Game Modal
Accepting a request now opens the Add Game form with the date and both teams prefilled — no more silent auto-save attempts that left games in incomplete states.
Thread Replies Fixed
Request reply posting in inbox threads now works reliably. Reply authors can also delete their own requests, and the action is clearly labeled "Delete Request" to avoid confusion.
Built on SignalR, Works for Every Role
Realtime features are powered by a persistent SignalR connection. All eight roles get live updates — scoped to what they're allowed to see. If the connection drops, the app degrades gracefully and can reconnect automatically.
Persistent Connection
The SignalR hub maintains a persistent connection for each authenticated session. Messages, request updates, and presence changes push directly to connected clients.
Role-Scoped Updates
Game Officials only receive updates for their assigned leagues and sports. Coaches see updates for their assigned team. Realtime respects the same permission boundaries as every other part of the app.
Audio Notifications
Distinct notification sounds play for game requests and request replies (one sound) and direct chat messages (a different sound). Both follow normal browser autoplay rules — sounds play after first user interaction.
Coordination That Moves
at the Speed of the Season
See live chat and realtime updates in action with a 30-minute demo.
Book a Demo