Tauri v2 Shell
Tauri turns the Vite React app into a signed Windows desktop binary with extra windows, sidecars, and IPC.
Two primary webviews ship today: main (full app) and mini (always-on-top pop-out). Each loads the same Vite bundle from dist/ in release, or http://localhost:1420 during tauri dev. Window chrome (minimize, maximize, close, queue drawer, mini toggle) is custom React in App.tsx, not native title bars (decorations: false).
Rust commands register in lib.rs via generate_handler!. TypeScript calls them with invoke from @tauri-apps/api/core. Local media paths go through convertFileSrc plus assetProtocol scopes in tauri.conf.json so <video> can read files under your home and download drives.
Cross-window playback does not share Zustand. Main emits play-in-mini / play-media; mini emits send-to-main and stop-playback. Each webview has its own JS heap, so events plus a few flat localStorage keys bridge state.
The updater plugin fetches updater.json from GitHub on startup (runUpdateCheck in updaterCheck.ts). Signed NSIS builds download and install in-app. Post-install copy can be structured JSON parsed by updatePostInstall.ts for the scrollable What is new modal.
In the repo
Where it shows up
-
src-tauri/tauri.conf.jsonwindows, sidecars, asset scopes, updater pubkey -
App.tsxstartup update check andUpdaterLayers.tsxUI -
MiniPlayer.tsxsecond window entry; Tauri events for playback handoff - Explorer child webview:
explorer_embed.rs,open_youtube_explorercommand