Developer Guide
Prerequisites
- Node.js 18 or newer
- Rust (stable channel)
- Scoop installed locally
- Visual Studio Build Tools or the Tauri prerequisites for Windows
Project Setup
git clone https://github.com/AmarBego/rscoop.git
cd rscoop
npm install
Run the desktop app in development mode with hot reload:
npm run tauri dev
Need just the frontend for quick UI iteration? Launch Vite directly:
npm run dev
Build signed installers and portable binaries:
npm run tauri build
Artifacts land in src-tauri/target/release/bundle.
Directory Layout
- src/ = SolidJS frontend, organised by feature pages and shared components.
- src-tauri/ = Rust backend, commands, and Tauri configuration.
- pics/ = UI screenshots used in documentation and the landing page.
- docs/ = GitHub Pages documentation (this site).
Rust Backend Notes
- Commands live under src-tauri/src/commands. Group related logic in modules to keep the invoke handler readable.
- Use the helpers in utils.rs for running PowerShell, probing Scoop state, and interacting with the filesystem.
- Long-running tasks should log progress with log::info! / log::warn! so the frontend operation modal can display updates via tauri-plugin-log.
Frontend Notes
- Hooks in src/hooks encapsulate backend calls and state. Prefer extending a hook rather than duplicating invoke logic inside components.
- The installedPackagesStore keeps the canonical list of installed apps. Use its efetch() helper after operations that modify Scoop.
- Tailwind + daisyUI components define the design system. Shared styles live in App.css.
Diagnostics
- Enable verbose logging from Settings ? About & Logs or set the RUST_LOG environment variable when launching in development.
- The system tray exposes a Refresh Apps entry that reloads Scoop application shortcuts without restarting the app.
Related Documentation
- Architecture - Dive deeper into the technical design of Rscoop.
- Troubleshooting - Common issues and how to resolve them.
- User Guide - Understand the user-facing features.