Show HN: I rewrote my Mac Electron app in Rust
Motivation and Technology Choices
- Original Electron app worked but was ~1 GB and heavy to maintain/optimize.
- Rewrite uses Tauri + Rust backend with a web UI (Angular/React), chosen for:
- Cross‑platform ambitions (Windows, later Linux) rather than Mac‑only Swift/SwiftUI.
- Familiarity with web UI libraries.
- Smaller bundles and better performance than Electron.
- Some commenters argue the headline overemphasizes “Rust” since UI is still HTML/JS; the main binary size win comes from using system webviews instead of bundling Chromium.
Tauri vs Electron Experiences
- Tauri praised for:
- Much smaller binaries (tens of MB vs hundreds).
- Good Rust integration and a pleasant backend dev experience.
- Major complaints:
- System webviews (Safari/WKWebView, Edge/WebView2, WebKitGTK) behave inconsistently; complex apps hit serious rendering and API differences, particularly on Linux (WebKitGTK bugs, missing WebRTC, performance issues).
- OS/browser updates can break UIs without app updates.
- Migration from Tauri 1→2 described as “nightmare” by some: multi‑repo, Linux crashes, poor docs.
- Electron defended for:
- Single, locked Chromium version → consistent rendering and WebGPU/Web APIs across platforms.
- Mature ecosystem (Electron Forge, update tooling).
- For many use cases, extra 100–200 MB disk usage is seen as acceptable; RAM usage and multiple Electron apps remain concerns.
ML Inference and Indexing Stack
- CLIP runs via ONNX Runtime using the Ort crate; main hurdle was bundling and code signing.
- Indexing speedups attributed to:
- Rust implementation.
- Scene detection to reduce frames.
- ffmpeg GPU flags and batching embeddings.
- Other Rust ML stacks discussed: Candle, Burn, tch, rust‑bert; tradeoffs in performance, abstraction level, and portability.
Vector Search and Storage
- Initial choice: embedded Redis with vector search modules; gave good similarity results but caused bundling/packaging pain.
- SQLite + vector extensions (early VSS) initially produced worse results; unclear if due to configuration.
- Community recommends lancedb, usearch, simsimd, newer SQLite extensions (e.g. sqlite‑vec). OP later reports successfully replacing Redis with sqlite‑vec.
Product and UX Feedback
- No trial despite “Try” CTA leading directly to Stripe; many request a time‑limited or feature‑limited demo, not just a video.
- Price ($99, one year of updates) seen by some as studio/creator‑tier rather than mass‑consumer.
- Current version indexes/searches images and videos; text/PDF search and RAW support are planned.
- Some criticism of marketing (“Trusted by professionals”, stock‑looking testimonials), refund policy (no refunds), and VAT handling.