Privacy Policy

Last updated: October 2026

Shelv does not collect any personal data. There is no tracking, no analytics, no advertising, and no user account required beyond the credentials for your own music server. A few optional features connect to outside services; each one is described below, together with exactly what it sends. This applies to all versions of Shelv (iOS, iPadOS, macOS and tvOS).

Stored Data

Shelv stores your server address and username on your device using the system's standard preferences. Passwords are stored in the system Keychain and never written to regular app storage. Your password is used solely to authenticate with the server you configured and is never sent in plain text. Authentication uses a salted MD5 hash as required by the Subsonic API.

If you connect Last.fm, the session key that Last.fm issues is stored in the Keychain as well. Music, cover art, and lyrics you download for offline listening are stored locally on your device.

Playback State

Shelv saves your current playback position, queue, and player settings locally on your device so that your session is restored after relaunching the app. This data is stored exclusively on your device and is never transmitted anywhere, unless you explicitly enable Queue Sync (see below).

Queue Sync

Shelv can optionally synchronize your current play queue across devices. This is off by default and can be set in the playback settings to one of two modes:

Subsonic: your queue is stored on your own music server using the standard Subsonic savePlayQueue endpoint. iCloud: your queue is stored in your own private Apple CloudKit database (see iCloud Sync below). In both cases the synced data consists only of the song identifiers in your queue and which song is currently playing. No queue data is sent to any other destination.

Scrobbling

If scrobbling is available on your server, Shelv reports the songs you play to that server using the standard Subsonic scrobble endpoint, so its play counts stay up to date. While your server can't be reached, for example when you are offline, the plays that still have to be sent wait in a small queue on your device. Each entry contains only the song identifier, the identifier of the server, and the time the song was played, and it is deleted as soon as your server has received it. Shelv does not scrobble to Last.fm or any other service.

iCloud Sync

If iCloud Sync is enabled, Shelv uses Apple CloudKit to keep a few settings in step across your own Apple devices: your saved radio stations, your lyrics server settings, your interface customizations, your Last.fm settings (which Last.fm features are turned on and your Last.fm username), and, when iCloud is selected as the Queue Sync mode, your current play queue. The data is stored in a private CloudKit database tied to your own Apple ID, inside a dedicated zone called ShelvSyncZone. Only you can access this data. Neither the developer nor any third party has access.

Your Last.fm session key is kept in the Keychain and, if iCloud Keychain is turned on for your Apple ID, Apple syncs it to your other devices in encrypted form.

Earlier versions of Shelv also kept a listening history for the Recap feature, on your device and in iCloud. Recap has been removed. When you update, Shelv deletes that old listening history from your device and, once iCloud Sync runs, from iCloud, and no listening history is recorded any more.

You can disable syncing at any time in the app's settings, and you can delete all iCloud data from the advanced settings.

Connection to Your Music Server

All music streaming, cover art, and metadata are fetched directly from the Navidrome or Subsonic-compatible server address you provided. Apart from iCloud and the optional services described below, the app communicates with no other server. Technical data such as your IP address may be logged on your music server. This is entirely outside the control of Shelv and is the responsibility of the respective server operator.

Lyrics (LRCLIB)

Shelv first asks your own music server for lyrics. If the server has none and the LRCLIB fallback is turned on, Shelv requests the lyrics from lrclib.net, or from an LRCLIB-compatible server you entered instead. The request contains only the song's title, artist, album, and duration; no account or device information is sent. When you use bulk lyrics download, this request is made for every song being downloaded. You can turn the LRCLIB fallback off, or point it to your own server, in the lyrics settings. Like any internet request, the receiving server can see your IP address.

Last.fm

Last.fm is only contacted if you connect your Last.fm account. You sign in on Last.fm's own website, so Shelv never sees your Last.fm password; it only receives a session key, which is stored as described above. Shelv uses this connection to look up information from Last.fm, such as an artist's top songs or similar artists for Smart Mixes. These requests contain the artist or song names being looked up. Last.fm's own privacy policy applies to your Last.fm account.

Internet Radio

Radio stations you add are played directly from the stream address you entered, so the station's server receives the connection, including your IP address, as with any internet radio player. For stations where you add AzuraCast details, Shelv also asks that station's AzuraCast server for now-playing information (title, artist, status, and artwork). No other data is sent.

No Tracking or Third-Party SDKs

Shelv does not integrate any third-party SDKs, analytics frameworks, crash reporters, or advertising networks. Apart from the optional connections described above, no data is shared with any external service.

TestFlight Beta

If you install a beta version through Apple's TestFlight, Apple may make crash reports and any feedback you choose to send (such as comments and screenshots) available to the developer, together with technical details like device model and system version. This is handled by Apple's TestFlight service under Apple's terms and privacy policy, applies only to beta builds, and is used only to find and fix problems in Shelv.

Disclaimer

Shelv is an independent third-party app and is not affiliated with, endorsed by, or officially connected to the Navidrome or Subsonic projects.

App Store

If you download the app via the App Store, Apple's privacy policy applies additionally. If you have allowed sharing with app developers in your device's privacy settings, Apple may provide the developer with crash reports and anonymous usage statistics. This is controlled by Apple and your device settings; Shelv adds no tracking of its own.

Contact

If you have any questions about this privacy policy, you can reach out at contact@vkugler.app.