
ShelfSync
Syncs Calibre ebook libraries between devices over the local network, without cloud services or cables, keeping metadata intact.
Role
Developer
- Timeline
- April 2026
Technologies
- Rust
- Tauri
- React
- Axum
- SQLite
- TypeScript
- mDNS
Tools
- Tokio
- Tantivy
- Tailwind CSS
- DaisyUI
- TanStack Query
Background
Getting a Calibre library from my desktop onto other devices always involved a cable or handing my books to some third-party cloud. Neither seemed necessary for devices sitting on the same network, so I built the tool I wanted.
Solution
Tauri + Rust desktop app. One device hosts the library over the local network; others connect to browse and sync. mDNS discovery means zero manual configuration, and parsing Calibre's metadata database directly means series and tags survive the trip.
Process
The bulk of the work was a reliable sync engine and treating Calibre's database with care: Axum for the local API, Rusqlite for metadata extraction. React + Tailwind frontend with a high-contrast mode tuned for e-ink screens, and clients cache metadata for offline browsing.
Final Product
Impact
Updating books on my e-reader went from a cable ritual to automatic. Being Calibre-specific is the point: it preserves metadata that generic transfer tools drop.
Reflection
This was my proper introduction to Rust and Tauri: async task management, and bridging systems-level backend code with a web UI. It also confirmed my preference for local-first tools: they're faster, private, and there's no subscription.
