Skip to content
Back to projects
Offline-first2026

Salsa Hits

An offline-first music app for social dancers, built to work in venues with no signal.

Role
Sole developer
Timeline
3 months
Focus
Offline-first

100%

Features available offline

0

Network calls to start playback

98

Lighthouse PWA score

The challenge

Dancers and DJs need their music in basements, festival halls and studios — exactly the places where mobile data does not reach. A streaming-only app is useless the moment the connection drops mid-song, and the usual answer of downloading a whole library is too heavy for a phone.

What I built

I made offline the default rather than a fallback. The app is a PWA with a service worker that caches the interface shell on first visit and then lets users pin specific playlists for offline use, storing audio in the Cache API with a size budget they control. Playback state, queue position and newly created playlists are written locally and synchronised opportunistically whenever a connection reappears, so the app never blocks on the network.

Outcome

The app works identically in airplane mode and on fibre. Users pin a night's playlist before they leave home and never think about connectivity again, which is exactly the point.

Key capabilities

Pin playlists for offline

Selective caching with a user-controlled storage budget and clear per-playlist status.

Background sync

Local writes queue up and reconcile automatically once the device is back online.

Installable on any device

Full PWA install, lock-screen media controls and gapless queue playback.

Tempo and timing metadata

BPM and count-in information surfaced per track, so dancers can pick by tempo.

Stack

Next.jsTypeScriptService WorkersIndexedDBCache APIWorkbox

Want something like this for your business?

Tell me what you are trying to build and I will tell you honestly what it takes to ship it.