Sunder Svelte Themes

Sunder

A desktop YouTube music client that doesn't spy on you


What is Sunder?

Sunder is a lightweight, native desktop music player that streams from YouTube without the bloat. Built with Tauri v2 and Rust, it uses a fraction of the memory that Electron-based alternatives consume while delivering a buttery smooth UI with hand-crafted animations.

The name says it all: to sunder means to split apart. We split the music from the surveillance.

Features

Playback

  • YouTube search with instant results and FTS5-powered local caching
  • Native audio via rodio, talking directly to ALSA/PipeWire/Pulse with no Web Audio overhead
  • Smart error recovery if a track fails (geo-blocked, age-gated, unavailable), a banner appears offering to find an alternative version automatically, with auto-skip fallback if ignored
  • Retry with bypass yt-dlp failures trigger a silent retry with --force-ipv4 and --geo-bypass before giving up
  • Prefetching silently pre-downloads upcoming tracks for seamless transitions

Queue

  • Three-section view: Now Playing card, Next Up (with drag-to-reorder), Previously Played
  • Fluid animations track cards slide and flip into position when the song changes, when you drag-reorder, or when tracks enter/leave the queue
  • Context menu integration right-click any track to play next, add/remove from queue, add to or remove from a playlist
  • Auto-advance: queue advances automatically on track end; stops gracefully after 3 consecutive errors

Playlists

  • Full CRUD with inline rename, quick-play, and drag-to-reorder
  • Remove from context menu right-click any track to remove it from the current playlist

App

  • Explore with personalized recommendations built from your listening history
  • Warm animated UI with spring physics, staggered entrances, glow pulses, and micro-interactions
  • ~15MB binary with release optimizations (LTO, strip, single codegen unit)
  • Zero telemetry. Nothing leaves your machine except YouTube search queries

Install

Arch Linux (AUR)

# Source build
yay -S sunder

# Prebuilt binary
yay -S sunder-bin

Debian/Ubuntu

Download the .deb from Releases:

sudo dpkg -i sunder_*_amd64.deb

Other Linux

Download the .AppImage from Releases:

chmod +x Sunder_*.AppImage
./Sunder_*.AppImage

Windows

Download the .exe installer from Releases.

macOS

Download the .dmg from Releases.

Runtime Dependencies

yt-dlp and ffmpeg must be installed and on PATH:

# Arch
sudo pacman -S yt-dlp ffmpeg

# Ubuntu/Debian
sudo apt install yt-dlp ffmpeg

# macOS
brew install yt-dlp ffmpeg

# Windows (scoop)
scoop install yt-dlp ffmpeg

Tech Stack

Layer Technology Why
Shell Tauri v2 Native webview, no bundled browser. ~100x lighter than Electron
Frontend Svelte 5 Runes-based reactivity, zero virtual DOM overhead
Audio rodio 0.19 Pure Rust audio with symphonia decoders (MP3/AAC/FLAC/Vorbis/WAV)
Extraction yt-dlp Reliable stream URL resolution, community-maintained
Database SQLite + FTS5 WAL-mode for concurrent reads, full-text search on cached tracks
Build Vite 6 Sub-second HMR, optimized production builds

Why this beats Electron music apps

  1. Memory: Sunder idles at ~40MB. Electron apps start at 200MB+.
  2. Startup: Native webview launches in milliseconds. No Chromium cold-start.
  3. Audio: rodio talks directly to your OS audio stack. No Web Audio API jank.
  4. Privacy: yt-dlp runs locally. No Google account, no tracking cookies.
  5. Size: The release binary is ~15MB. Electron apps ship 150MB+ of Chromium.

Development

Prerequisites

  • Rust (stable, 2021 edition)
  • Node.js >= 18
  • yt-dlp and ffmpeg installed and on PATH

Linux dev dependencies:

# Arch
sudo pacman -S webkit2gtk-4.1 base-devel libappindicator-gtk3 librsvg pango atk

# Ubuntu/Debian
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev

Run

git clone https://github.com/FrogSnot/Sunder.git
cd Sunder
npm install
npm run tauri dev

Build

npm run tauri build

The optimized binary lands in src-tauri/target/release/sunder.

UI Design

Warm, golden-tinted dark palette designed for long listening sessions:

  • Base: Deep warm blacks (#0f0e0d, #181614)
  • Accent: Burnished gold (#e0a820) with ambient glow effects
  • Animations: 11+ custom keyframe animations including spring physics, staggered cascades, equalizer loaders, and floating idle states

Every interaction has tactile feedback. Buttons snap with spring easing, tracks lift on hover, active items pulse with a warm glow. The queue uses Svelte's flip and fly transitions so card positions animate smoothly during reorder and song changes -- tracks cascade up one by one when a new song starts, and slide out cleanly when removed.

Data

The database is stored locally in platform-specific locations:

  • Linux: ~/.local/share/com.sunder.app/
  • Windows: %APPDATA%\com.sunder.app\
  • macOS: ~/Library/Application Support/com.sunder.app/

Audio is cached temporarily in /tmp/sunder/ and automatically reused on replay.

Roadmap

  • Local track downloads with library management
  • Lyrics display
  • Keyboard shortcuts / media key support
  • System tray with mini player
  • Audio equalizer

License

AGPLv3

Top categories

Loading Svelte Themes