I Built the Same App with Five GUI Frameworks: Tauri, Slint, egui, Dioxus, and Flutter for Linux +…

1 min read Original article ↗

Illya Yalovoy

I wanted one practical answer:

What GUI framework should I use for a real cross-platform app targeting Linux desktop and Android, when GUI unit testability is a hard requirement?

Not a hello-world benchmark. Not a vibes-based framework comparison. I wanted the kind of recommendation you can use before spending months on a product.

The test app was axiotask, a keyboard-first Google Tasks client. The domain did not matter as much as the UI shape: dense task lists, hierarchical rows, smart views, keyboard navigation, context menus, date controls, search, detail panels, local persistence, and sync-related state.

The hard constraint was not sync. It was not Google Tasks. It was this:

The GUI must be testable without a human looking at the screen.

That matters for AI-assisted development, but it also matters for solo developers, CI, and any project where “run the app and eyeball it” is not a scalable quality strategy.

Over six implementation attempts, I built or evaluated the same application with five GUI frameworks:

  1. Tauri 2 + Svelte 5
  2. Slint 1.16, first using raw primitives
  3. egui/eframe
  4. Slint 1.16 again, this time using std-widgets correctly
  5. Dioxus 0.6