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.