Changelog
April 25, 2026
One-Tap Clip Sharing & Faster Avatars
Every highlight clip now has a Share button in the top corner of the player. Tap it and the clip is on your phone’s share sheet seconds later — post it to Instagram or TikTok, send it in a group chat, AirDrop it to a friend, or save it straight to your camera roll. Pick from three formats: a quick unedited grab of the original clip, a vertical 9:16 crop you can pan across to find the action, or a vertical view framed with branded blue rails and a zoom slider. All edited exports get a Saturday Hoops watermark baked in.
The Share Button
- Lives at the top of the video player, visible while the clip is playing. Pauses fade it out so it doesn’t fight the “View Game” / “Last Game” pill that takes the same corner when you stop the video
- Orange when it’s your own clip, blue when it’s someone else’s — subtle nudge that you’re sharing your own moment
- Mobile gets a compact icon-only chip in the top-left (slot the “Last Game” pill vacates while the clip plays); desktop gets a full magazine chip with “SHARE” text in the top-right
- Hover the desktop chip and the underlying clip loops in place — lets you study the moment without the player auto-advancing — while the chip pulses to invite the click
Three Formats
- Quick (16:9, instant)— the original clip, unedited. Streams straight from our CDN with no rendering wait. Useful for AirDropping a clean copy or for posting to feeds that don’t need a vertical crop
- Vertical (9:16 fill)— the clip cropped to a portrait frame for Instagram Stories, Reels, and TikTok. A pan slider lets you drag the visible window left or right to keep the action centered — great for a fast break that ends on one side of the court
- Zoomed (9:16 framed)— portrait with branded blue rails above and below the full 16:9 source, so no horizontal action gets cropped out. A zoom slider tightens the frame as you drag it — the rails shrink, the action grows, and the watermark in the bottom rail follows along
How the Flow Feels
- On mobile: tap Share → pick a format → tap the bottom button. For Quick, the OS share sheet opens almost instantly. For Vertical or Zoomed, the modal shows a basketball-spinning loader for ~15 seconds while we render your edit, then the share sheet opens with the file attached
- On desktop: same idea but the file downloads to your computer when ready — most social apps don’t accept uploads from desktop browsers, so a clean download to AirDrop or move to your phone is the right outcome
- Quick stays free of the render wait because it’s the same file the player is already streaming — we just hand it to your share sheet directly
- The modal locks while a render is in flight so you can’t accidentally close it and miss the result
The Modal
- Wears the same magazine-ticket chrome as the roster cards and game ticket — 2px primary border, the orange corner triangle, and a kicker label above the headline
- Tabs use a broadcast-style underline indicator with two-line labels (mode name + aspect ratio) and a tiny “Quick share / No wait” or “Edit & share / ~15s render” kicker above so you know what to expect time-wise
- Sliders for pan and zoom got a chunky touch- friendly thumb (28px white circle on a brand- blue track) so they actually drag on a phone
- The loading state is a basketball glyph from the Saturday Hoops logo spinning on a fingertip cadence — alternating fast and slow segments rather than a generic spinner
- A faint preview of the watermark sits in both the Vertical and Zoomed modes so you see roughly where the brand mark will land before you commit — bottom-center on both, with Zoomed’s riding up into the blue rail as you drag the zoom slider
- Modal sizes itself to fit your phone — on iPhone SE the preview shrinks but the slider and share button still land above the fold, no scroll required
- Tab switching no longer reflows the modal height — Quick / Vertical / Zoomed all snap to the exact same total size so the header and CTA don’t shift under your thumb
Behind the Scenes
- Wired up share-flow analytics so we can see which formats people pick, mobile vs desktop conversion, how long the prep wait actually takes, and where errors happen in the pipeline — the data tells us which tweaks to make next
- Every custom analytics event the app fires now lives in a single
METRICS.mddoc with what triggers it, what properties it sends, and the funnels worth watching
Faster Avatars, While We’re At It
- Player avatars across the games list and game detail pages now share the same optimized image URL across pages, so navigating between /games and a detail page doesn’t re-fetch every face
- Cached avatars skip the placeholder shimmer entirely — if the browser already has the image, it appears instantly with no fade
- Uncached avatars get a soft skeleton-shimmer animation while loading instead of a blank gray circle