Tauri is basically what happens when someone got fed up with shipping 100MB+ Electron apps for a fucking calculator. It's a framework that lets you build desktop and mobile apps with web tech, but instead of bundling Chrome like Electron does, it uses whatever webview your OS already has - WebView2 on Windows, WebKit on macOS, and WebKitGTK on Linux.
Tauri 2.0 went stable on October 2, 2024, adding mobile support for iOS and Android. Now you can ship to 5 platforms with one codebase, assuming you don't mind debugging Safari's weird rendering on each one.
The trade-off? Your app is tiny (2.5MB vs 85MB in real benchmarks), but you're stuck with Safari's WebKit on Mac and Edge's WebView2 on Windows. This works great until you need some Chrome-specific API that Safari doesn't support, then you remember why Electron exists. Check Can I use but for WebView support, not Chrome support.
When Tauri Breaks Your Day
Migrating from Electron? Here's the shit you'll actually deal with:
Your React app that worked perfectly? Good news: it still works. Bad news: that fancy File System Access API you're using only works in Chrome. Safari's WebKit laughs at your modern web APIs. I spent 4 hours debugging a drag-and-drop file upload that worked fine in Electron before realizing WebKit just... doesn't do that API. Check MDN compatibility tables before you get too excited.
The Rust backend is genuinely fast, but compilation times will make you question your life choices. Touch one line in your Rust code and wait 3 minutes for a rebuild. Hot reload works great for your frontend - just don't touch the backend. I learned this the hard way during a demo where I "quickly" fixed a typo and made everyone wait 5 minutes. Use cargo check
for faster feedback during development.
Mobile Development Hell
Tauri 2.0 added mobile support in October 2024, which sounds great until you actually try it. The mobile setup process requires configuring Xcode (8GB+), Android Studio (3GB+), and a bunch of platform-specific toolchains that break if you look at them wrong. The GitHub repo has 96,400+ stars now, but check those mobile-related issues before getting excited.
iOS uses WKWebView, which has its own special way of breaking your CSS - viewport handling is different, and some CSS properties behave differently than in Safari. I found this out when our perfect desktop layout turned into complete shit on iPhone 14 - text overlapping, buttons cut off, the whole mess. Even better, iOS 14.3 has a WebView bug that makes our entire sidebar disappear - still not fixed by Apple two years later.
Android uses WebView, which varies wildly between devices and Android versions. A Samsung Galaxy running Android 12 with WebView 95 will render your app completely differently than a Pixel running Android 14 with WebView 118. We tested on 12 different Android devices last month and got 12 different layouts. Your app looks different on every phone, and debugging requires actual devices because emulators lie about platform behavior. Samsung's WebView 95 renders CSS Grid like someone threw the spec in a blender. Android WebView versions are like fucking snowflakes - every device is different, and they're all special in their own broken way.
The Security Thing Everyone Talks About
Tauri's security model is genuinely better than Electron's "here's full Node.js access" approach. The permission system actually works - you define what your app can access, and that's it.
This is great until you need to do something that requires permission you forgot to enable. Then you're digging through capability files trying to figure out why your file system access isn't working. The security audit found actual issues they fixed, which is more than most frameworks can say.
Plugin Ecosystem: Hit or Miss
The official plugins cover the basics: filesystem, HTTP requests, notifications, dialog boxes, and system shell access. But if you need something specific, you're either writing custom Rust code or hoping someone else already solved your problem. Check the awesome-tauri list for community plugins.
Compare this to Electron where you can npm install
literally anything from the massive npm ecosystem. Tauri's plugin system is more secure but way more limited. Need to access some weird hardware API? Hope you like writing Rust bindings or using system commands.
When Tauri Actually Makes Sense
Use Tauri when:
- File size actually matters to your users
- You're building CRUD apps that don't need bleeding-edge web APIs
- Your team can handle Rust compilation and mobile platform quirks
- Security is more important than convenience
Don't use Tauri when:
- You need Chrome DevTools extensions
- Your app relies on Node.js modules
- You want to ship fast and debug mobile WebView issues later
- Your frontend uses APIs that Safari doesn't support
The GitHub repo has 96,400+ stars, but check the issues before committing. The Discord is active, but you'll spend time there debugging platform-specific rendering disasters.