Title: I released a new version of Recut recently, rewritten from the ground up using Rust, Svelte, Tauri, TypeScript, and Tailwind (RUSTTT stack for the win!). It&#x27;s the first app I&#x27;ve built with Tauri and I&#x27;ve really enjoyed it.<p>Some back story: Recut is a tool I built to speed up my screencast editing workflow. It&#x27;s like a lightweight single-purpose video editor. It chops out the pauses, with some knobs to tweak how closely it cuts and what it leaves in, and lets you get a live preview of what it&#x27;ll look and sound like with the cuts applied. It can then export to a handful of other editors, nondestructively, so that you can use the full capabilities of a &quot;real&quot; video editor.<p>It was originally a native Mac app written in Swift, and people kept asking for a Windows version. I had learned Swift and macOS development to build it originally. So as a solo developer, I had some choices to make. Keep it Mac-only? Learn <i>another</i> whole language + UI framework, rebuild the app, and maintain two codebases? Rebuild the app with a cross-platform toolkit?<p>I&#x27;d had experience with Qt and C++ in years past, but I honestly didn&#x27;t love the idea of getting back into C++ and dealing with the inevitable hard-to-debug segfaults. I&#x27;d had more recent experience as a web developer, but I was worried about performance bottlenecks. I actually started down the path of building Recut in Electron and Rust (using NAPI-RS for bindings) and it looked promising, but I was still worried about the bloat of Electron.<p>A few months in, I took a closer look at Tauri, and ported the whole app from Electron in a week or so. Most of the heavy lifting was already in Rust, and the UI stuff pretty much &quot;just worked&quot;. The biggest change was the bindings between JS and Rust.<p>Working with Tauri has been nice. I especially like their &quot;State&quot; system, which gives you an easy way to keep app-wide state on the Rust side, and inject specific parts of it into functions as-needed. I also really like how easy it is to write a Rust function and expose it to JS. The process model feels a lot easier to work with compared to Electron&#x27;s split between renderer and main and preload, where you have to pay the cost of passing messages between them lest you ruin the security. Tauri&#x27;s message-passing has a decent amount of overhead too, but I dealt with that by avoiding sending large amounts of data between JS &lt;-&gt; Rust and it&#x27;s been fine.<p>The Tauri folks on Discord were a big help too (shout out to Fabian for the help when I ran into weird edge cases). I think Tauri has a bright future! Definitely worth a look if you know web tech and want to make cross-platform apps.
Upvote: