An offline-only music player for Android. React Native, Expo SDK 57, TypeScript.
It plays the files a streaming service will not: FLAC, ALAC, and anything else already on the phone. It surfaces the technical truth of a file rather than hiding it. And it does not have a network layer — not a disabled one, not one behind a setting. Release builds ship without the INTERNET permission at all.
What it does
Playback of local files, lossless first-class, with background playback, lock-screen controls and a persistent queue.
Five shuffle algorithms, chosen in Settings, each explained where you choose it. Not one shuffle behind a toggle — see docs/shuffle.md.
Local playlists with drag-reorder, a cover mosaic, and shuffle.
Listening statistics computed on the device from your own history: top tracks, artists, albums and playlists by week, month and year, with a Wrapped summary. Nothing is uploaded because there is nowhere to upload it to.
Technical metadata surfaced: bitrate, sample rate, bit depth, codec, file size, on a monospaced spec strip.
Dark and light themes, Turkish and English, both switchable.
The promise
No network. No accounts. No telemetry. No analytics SDK.
This is enforced rather than intended: plugins/withOfflineOnly.js strips the INTERNET permission from the release manifest and restores it only for debug builds, where Metro needs it. A change that introduces a network call does not fail review — it fails to work.
Free, open-source, totally local, statistic tracking, FLAC-supporting player.