Desktop companion for managing 3D printer filament profiles and syncing to Bambu Lab printers via MQTT.
Built with Tauri v2 + Svelte 5 for maximum performance and minimal footprint (~8MB binary).
SpoolSync Desktop is a native desktop app that lets you:
Color browsing via FilamentColors is planned but not implemented yet and is tracked in the roadmap.
| Area | Status | Notes |
|---|---|---|
| Core layout & routing | โ | Sidebar, pages, loading & error handling |
| SQLite storage | โ | Profiles, favorites, custom profiles, settings |
| Favorites & custom profiles | โ | List, create, delete, basic validation |
| AMS sync page | โ | Basic AMS page and settings wiring |
| AMS settings in Settings | โ | AMS defaults stored in settings DB |
| MQTT client | ๐ง | rumqttc integration in progress |
| SpoolmanDB integration | ๐ง | Client, pagination, filters in progress |
| FilamentColors integration | โธ | Deferred to later phase |
| Theme switcher | ๐ง | UI present, persistence WIP |
| Import/Export | ๐ | JSON import/export not yet implemented |
| Google auth & Drive sync | ๐ | Planned for later phases |
For full implementation details, see the roadmap.
Screenshots will be added once the AMS sync and Spoolman browser flows are fully polished.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Svelte 5 + SvelteKit | Reactive UI, routing |
| Styling | Tailwind CSS | Utility-first styling |
| Backend | Rust (Tauri v2) | Native shell, MQTT, DB |
| Database | SQLite (rusqlite) | Local persistent storage |
| MQTT | rumqttc | Bambu Lab communication |
| HTTP | Tauri HTTP APIs | SpoolmanDB integration |
sudo pacman -S webkit2gtk-4.1 base-devel curl wget file openssl appmenu-gtk-module gtk3 libappindicator-gtk3 librsvg
xcode-select --install
# Clone repository
git clone https://github.com/GaelicThunder/SpoolSync-Desktop.git
cd SpoolSync-Desktop
# Install JS dependencies
npm install
# Development with hot reload
npm run tauri:dev
# Build optimized binary
npm run tauri:build
On first run, configure your printer and AMS under Settings โ Printer & AMS.
FilamentColors-based color browsing will be added later and is not required for AMS sync.
SpoolSync-Desktop/
โโโ src/ # Svelte frontend
โ โโโ routes/
โ โ โโโ +layout.svelte # Root layout & shell
โ โ โโโ browse/ # Spoolman browser
โ โ โโโ favorites/ # Favorites listing
โ โ โโโ custom/ # Custom profiles CRUD
โ โ โโโ ams/ # AMS sync page
โ โ โโโ settings/ # Printer & AMS settings
โ โโโ app.css # Tailwind entry
โ โโโ app.html # HTML template
โโโ src-tauri/ # Rust backend
โ โโโ src/
โ โ โโโ main.rs # Tauri commands & MQTT/DB glue
โ โโโ Cargo.toml
โ โโโ tauri.conf.json # App config
โโโ package.json
โโโ vite.config.ts
โโโ svelte.config.js
โโโ tailwind.config.js
โโโ TODO.md # Detailed roadmap
# Dev with Tauri shell
npm run tauri:dev
# Build
npm run tauri:build
# Type checking / linting
npm run check
# Frontend-only dev (no Tauri shell)
npm run dev
The full roadmap lives in TODO.md. High-level phases:
Current internal status is updated directly in TODO.md.
FilamentColors support and advanced color tools are explicitly tracked under Phase 5: Color Browser and are not yet implemented.
Pull requests are welcome. For larger changes, please open an issue first to discuss the design.
Recommended workflow:
git checkout -b feature/my-featurenpm run check and npm run tauri:buildThis project is licensed under the MIT License. See LICENSE.
Status: Active development (Phase 7 โ MQTT & AMS polish)