Built with
Plain notes on how RuForge actually uses each tool in the stack. Same sixteen icons as the Docs mega-menu grid.
- YouTube Downloader You paste a YouTube link. RuForge downloads the file and plays it locally. There is no in-app YouTube player.
-
yt-dlp Engine Every download and metadata preview shells out to a bundled yt-dlp binary. Rust owns the process; React shows the progress.
-
SponsorBlock API Community skip segments from SponsorBlock apply to local files, same idea as the browser extension, without streaming from YouTube.
- Tauri v2 Shell Tauri turns the Vite React app into a signed Windows desktop binary with extra windows, sidecars, and IPC.
- Rust Core Downloads, disk scans, ffmpeg jobs, and SponsorBlock fetches run in Rust. The React layer invokes and renders.
- React 19 Core The desktop UI is React 19 inside Tauri webviews. Tabs replace a router; Zustand picks the active surface.
- FFmpeg Processing ffmpeg and ffprobe ship as bundled sidecars for yt-dlp muxing, scrubber sprite sheets, and quiet metadata probes.
-
Zustand State Store One Zustand store is the main-window brain: nav, settings, download queue, gallery list, and hero metadata.
- Vite Build Tool Vite bundles the desktop React app that Tauri loads in main and mini webviews.
- TypeScript Frontend domain types and IPC boundaries are TypeScript so refactors fail at compile time, not in the webview.
- Tailwind CSS Tailwind v4 utility classes plus rf-* CSS tokens style the desktop app and the public site from the same palette idea.
- Astro Site The public RuForge site in `website/` is Astro 5 static output, deployed to Cloudflare Pages.
- WebView2 Shell On Windows, WebView2 (Edge Chromium) hosts the React UI and a separate embedded surface for Explorer cookie flows.
- Framer Motion Framer Motion shows up on the marketing site hero, not in the desktop player control dock.
- Lucide Icons Lucide React icons are the default glyph set for downloader, library, player, settings, and queue UI.
- Sharp Images Sharp is Astro image pipeline dependency. It runs at site build time, not in the desktop app.
Need settings or internals reference instead? Docs overview or GitHub Discussions.