← Back to work

Client: Ainovaty (Internal — Habitracker)

Jam Sessions

Real-time collaborative focus sessions inside Habitracker — where users work together on shared goals, keep each other accountable, and replay each other's sessions asynchronously.

Real-TimeWebSocketsReact NativeMultiplayer
Jam Sessions

What are Jam Sessions?

Jam Sessions are the real-time multiplayer layer inside Habitracker. The idea: accountability works better with other people. So instead of tracking habits in isolation, users can start or join a live session — a shared timer where multiple people are working simultaneously on their own goals.

Sessions can be anything: a focused work block, a Pomodoro, a run, a yoga practice, a meditation, a study session. The app supports 13 session types — FOCUS, POMODORO, ROUTINE, WEIGHTLIFTING, RUNNING, YOGA, MEDITATION, STUDY, READING, COOKING, HIIT, WALKING, CREATIVE.

How it works

A host starts a session and shares a join code. Participants join in real time and see each other's progress — status (active, paused, done), reactions, and a shared timeline. The host can configure a countdown or stopwatch timer, set a goal, and optionally play synchronised audio during the session.

Sessions are orchestrated over WebSockets with Socket.io, giving sub-second latency for status updates and reactions. Participant state is managed via a custom Zustand store and RxJS streams, keeping the UI reactive without unnecessary re-renders.

Ghost Replay

One of the more interesting design decisions: Ghost Replay mode. If a user can't join live, they can replay a past session as if it were happening in real time — the ghost of a previous participant moving through their session alongside you. It's an asynchronous form of accountability that doesn't require scheduling.

Roles & session lifecycle

Sessions have a full lifecycle — READY → ACTIVE → PAUSED → ENDED — and support host, co-host, and participant roles. Hosts can manage participants, and the session summary screen captures what everyone accomplished.

Audio layer

Sessions support music playback via react-native-track-player, with track details and playback controls surfaced inside the active session screen. Audio can be synchronised across participants for a shared ambient environment.

Projections

Jam Sessions are a core driver of the premium tier. The social and real-time nature of the feature creates strong network effects — early data from similar social productivity apps suggests that users who participate in at least one collaborative session have meaningfully higher 30-day retention than those who don't. We're building toward that.

Interested in working together?

Start a conversation