SHIPPING.
CONSTANTLY.

Every update we've shipped, newest first. Built fast, fixed faster.

A bigger, faster, more alive Offseason.

The largest update since launch. A completely new onboarding experience, badge ceremonies with confetti and haptics, deep performance work on photos and video, and animation polish across nearly every screen.

Highlights

  • Brand new onboarding flow — cinematic hook screen, animated sport picker, real-time username availability, photo capture during signup
  • Full badge reveal ceremony with confetti, light streaks, and haptics — plus a shareable badge card for posting wins to Instagram
  • Pinch to zoom on photos, Instagram-style — zooms from your exact finger position, dims the background, springs back when you let go
  • Video performance overhaul — videos download once and replay from disk, audio now plays through the speaker even on silent
  • Disk caching for profile pics and post photos — the app feels noticeably faster after the first launch
  • Animation and haptic polish across like, follow, comment, post, moment upload, profile save, tab switching, notifications, and more

Onboarding

  • Complete new onboarding flow for new users
  • Cinematic hook screen with athlete silhouettes and tagline
  • Animated sport picker grid with haptic feedback per tap
  • Position and grad year selection with sport-specific suggestions
  • Emotional promise screen with staggered text reveal
  • Username claim with real-time availability checking
  • Profile photo capture during signup
  • Activation screen before entering the app

Badges & Leaderboard

  • Full badge reveal ceremony with confetti, light streaks, and haptics
  • Badge share card for posting wins to Instagram and other social
  • Ambassador specialty badge — gold-orange gradient, megaphone icon
  • Pioneer specialty badge — blue gradient, flag icon
  • Your own leaderboard entry now has a persistent glow and pulse
  • "You're on the leaderboard" banner animates in when you open it
  • "YOU" label on your leaderboard row, plus a tap flash before navigating

Animations & Haptics

  • Like button: heart springs up, particle burst, deflates on unlike
  • Follow button: scale pulse, blue glow, confetti burst on follow
  • Post submitted: full screen "Your highlight is live" celebration toast
  • Moment uploaded: "Moment is live" toast with gradient ring glow
  • Profile ring pulses after uploading a moment
  • Comment send button pulses with haptic on tap
  • New comments slide up with spring animation
  • Comment like button: heart scale bounce and particle burst
  • Notification bell shakes when new notifications arrive
  • Unread notifications slide in from the leading edge with staggered delay
  • Notifications fade out with a satisfying sweep when marked read
  • Profile save: green checkmark toast slides up from the bottom
  • Profile complete: full screen confetti the first time all fields are filled
  • Badge popup, profile pic long press zoom, sport tag selection, and tab switching all now have haptic feedback

Suggested Athletes

  • Follow and Follow Back buttons directly on suggested athlete cards
  • Full row tappable to profile in suggested athletes sheet
  • Mutual / Same School / Same Sport relationship badges still visible
  • Sports count increased to 3 in suggested lists

Photos & Video

  • Pinch to zoom on post photos, Instagram-style
  • Zoom anchors to your exact finger position, background dims, springs back on release
  • Video audio now plays regardless of the ringer or silent switch
  • Videos download once and serve from disk on repeat plays
  • Stable cache key ignores expiring Firebase Storage tokens

Bandwidth & Performance

  • Disk cache for profile pics and post photos persists across app launches
  • Pinch-zoom images now check cache before fetching from the network
  • Video background downloads cancel cleanly when posts leave the screen
  • Moment ring refresh interval increased from 60s to 5 minutes
  • Leaderboard no longer reloads every time the sheet opens
  • Firestore switched to memory cache settings
  • URLCache bumped to 50MB memory / 200MB disk
  • Friends-of-friends query capped at 20 to limit Firestore reads
  • Notification listener properly cleans up on view disappear

Stability

  • Video player redesigned to use AVURLAsset — fixes "AVPlayerItem cannot be associated with more than one AVPlayer" crash
  • Video cache clears on logout — fixes freeze when switching accounts
  • Confetti particles pre-generated at tap time — fixes CGFloat.random crash
  • Username check task properly cancels before saving on the claim screen
  • Video download tasks wrapped in a serial queue for thread safety

Quality of Life

  • Tap to dismiss the keyboard across comments, posts, edits, onboarding, and moment upload
  • Pull to refresh on profiles
  • Profile completion score now tracks saved state only — celebration fires at the right time
  • Notification sweep animation tied to auto mark-all-read at 1.5s
  • All audio plays through the speaker regardless of ringer position
  • Bug fixes and stability improvements

Like & comment counts get accurate.

Patch release fixing data integrity issues with engagement counts caused by race conditions in the feed.

Fixes

  • Stale like and comment counts on posts in the feed
  • Race conditions from repeated checkIfLiked calls firing in LazyVStack
  • Bug fixes and stability improvements

Weekly leaderboard timing, fixed.

Backend cleanup release ensuring the leaderboard rolls over correctly every week.

Fixes

  • Weekly leaderboard now resets Sunday at 11:59 PM as intended
  • "Last Week" leaderboard now updates correctly even on weeks with no qualifying entries
  • Bug fixes and stability improvements

Privacy, Moments, and a faster feed.

The first major update after launch. Adds private accounts, mentions inside Moments, an upgraded video player, and big improvements to image performance.

New

  • Private accounts — only approved followers see your full profile and posts
  • @mentions inside Moments captions
  • Tappable mentions inside the Moment viewer
  • Adaptive video player — full-screen vertical video, no more black bars
  • Visibility-based autoplay so videos start when in view, pause when off-screen
  • Block users from the report sheet

Improvements

  • Image caching moved from UserDefaults to NSCache + disk cache
  • Comment likes now persist correctly per comment
  • Leaderboard week calculations now use Monday-based weeks
  • Firestore security rules tightened around blocked users and comment likes
  • Removed post view counts
  • Bug fixes and stability improvements

Offseason is live.

The first version of Offseason ships to the App Store. Built for athletes who deserve a space of their own.

What's in 1.0

  • Athlete profiles with sport, position, school, grad year, height, weight, and bio
  • Posts with photo, video, and sport tag support
  • Moments — disappearing photos and videos for your team
  • Weekly leaderboard with sport-category rankings
  • Direct messages
  • Comments, likes, follows, and notifications
  • Suggested athlete discovery

Got an idea for what's next?

Bug reports, feature requests, or general feedback — all read by the founder.

contact@joinoffseason.com