For the last ~15 years I've worked on embedding web browsers into Java and .NET desktop apps (JxBrowser, DotNetBrowser). Over time, I watched many teams move from embedding web views into native apps, to building full desktop apps with frameworks like Electron and Tauri.
Both are useful, but in practice I kept running into several problems.
With Electron, beyond the larger app footprint, I often ran into:
- lack of type-safe IPC
- no source code protection
- weak support for the modern web stack
Tauri solves some problems (like app size), but introduces others: - different WebViews across platforms → inconsistent behavior
- requires Rust + JS instead of a single stack
So we built MōBrowser, a framework for building desktop apps with TypeScript, Node.js, and Chromium.Some of the things we focused on:
- typed IPC using Protobuf + code generation (RPC-style communication instead of string channels)
- consistent rendering and behavior across different platforms
- Node.js runtime
- built-in packaging, updates, and scaffolding
- source code protection
- small delta auto-updates
The goal is to let web developers ship desktop apps with a web stack they already know and fewer cross-platform surprises.I'd especially love feedback from people who have built production apps with Electron or Tauri.
Happy to answer any questions.