Neoplay is an open-source Spotify player built as an alternative to the official desktop client. The driving motivation was simple: the official Spotify client uses a lot of memory and CPU for something that is, at its core, an audio player with a search box. Neoplay does the same job at roughly half the resource cost.
Why Tauri
The obvious choice for a cross-platform desktop app with a web-based UI is Electron. Neoplay uses Tauri instead, which is the key reason for the performance difference.
Tauri doesn’t bundle Chromium. It uses the OS’s native WebView (WebKit on macOS, WebView2 on Windows), which means the app binary is small and the memory baseline is a fraction of what Electron-based apps carry. The backend — any system-level work, native API calls, process management — is written in Rust, which runs lean by design.
The result: Neoplay uses approximately 50% less memory and CPU than the official Spotify client under typical listening conditions.
The Spotify API
Neoplay connects to Spotify’s Web API and playback SDK to handle:
- Authentication (OAuth 2.0 with PKCE)
- Playback control (play, pause, skip, seek, volume)
- Library browsing (playlists, albums, saved tracks)
- Search
The playback SDK runs in the WebView layer, which handles the audio streaming itself — Spotify’s infrastructure does the heavy lifting, Neoplay is the interface.
What I learned
This was my first serious Rust project. The learning curve around ownership and borrowing was real, but the payoff — understanding why the language makes the guarantees it does, and what that means for systems programming — was worth it.
The Tauri model of Rust backend + web frontend is genuinely compelling for desktop apps. You get the full expressiveness of the web stack for UI and the performance characteristics of a systems language for anything that touches the OS. The separation of concerns is clean in a way that Electron doesn’t force you into.
The project is fully open source on GitHub.