blog.frankel.ch
My opinion on the Tauri framework - A Java geek
Excerpt
## The meh At first, I wanted to create my usual showcase for desktop applications, a file renamer app. However, I soon hit an issue when I wanted to select a directory using the file browser button. First, Tauri doesn’t allow to use the regular JavaScript file-related API; Instead, it provides a more limited API. Worse, you need to explicitly configure which file system paths are available at build time, and they are part of an enumeration. … ## The bad However, Tauri’s biggest problem is its design, more precisely, its separation between the front and the back end. What I love in Vaadin is its management of all things frontend, leaving you to learn the framework only. It allows your backend developers to build web apps without dealing with HTML, CSS, and JavaScript. Tauri, though a desktop framework, made precisely the opposite choice. Your developers will need to know frontend technologies. Worse, the separation reproduces the request-response model created using browser technologies to create UIs. Reminder: early desktop apps use the Observer model, which better fits user interactions. We designed apps around the request-response model only after we ported them on the web. Using this model in a desktop app is a regression, in my opinion. ## Conclusion Tauri has many things to like, mainly everything that revolves around the developer experience. ... However, it’s a no-go for me: to create a simple desktop app, I don’t want to learn how to center a `div` or about the flexbox layout, etc.
Source URL
https://blog.frankel.ch/opinion-tauri/Related Pain Points
Request-response model poorly suited for desktop app patterns and introduces latency
7Tauri's design uses an asynchronous request-response model between JavaScript frontend and Rust backend (serialized as JSON), which is fundamentally misaligned with traditional desktop UI patterns that rely on event-driven/observer models. This introduces latency, complicates debugging, and regresses from proper desktop app design principles.
Restrictive file system API requires build-time whitelist configuration
7Tauri provides a limited file system API compared to standard JavaScript APIs and requires explicit path whitelisting at build time via enumeration. Dynamic runtime access to unforeseen directories requires recompilation and redistribution, severely limiting flexibility for business applications with user-configured paths.
Steep learning curve requires developers to master both frontend and backend skills
6Tauri forces backend developers to learn HTML, CSS, and JavaScript, and vice versa. There are no native UI components—the entire interface relies on web technologies. This creates a barrier for teams specialized in desktop or backend development and requires hiring full-stack developers or extensive training.