
Our Web IDE now exports C#+XAML to native macOS and Linux too (in-browser, WASM) (xaml.io)
Hi everyone,
Quick follow-up to our previous post about Windows .EXE export: xaml.io can now also export to macOS and Linux. So the publish flow now covers all three desktop OSes.
xaml.io exports your C# + XAML project to a native binary for each platform:
• Windows .exe
• macOS .app bundle (ad-hoc signed)
• Linux executable (x86_64)
A few details that might be interesting to this sub:
• The whole toolchain still runs in the browser via WebAssembly. No backend compile step, nothing uploaded to a server. Your code stays local.
• What runs where, to head off a common question: the WebAssembly part is only the IDE itself. The desktop apps it produces are real native .NET processes. Your C# runs as native code in-process (same as a WPF or WinForms app). The process embeds the OS's built-in WebView (Edge WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux) via Photino purely as the UI rendering surface. Not Electron-style, not WASM at runtime.
• The macOS ad-hoc code-signing happens client-side too, in WASM. We ended up vendoring a small subset of Filip Navara's Melanzana (.NET Mach-O writer + CodeDirectory hasher) and lazy-loading it so non-Mac users don't pay for the bytes on first paint. This client-side code-signing was the part we weren't sure was possible until we got it working.
• Still no install, no signup (unless you want to save to the cloud or use AI).
• It's free.
Honest caveats up front:
• Apps are unsigned in the "publisher identity" sense (no Apple Developer ID, no Windows Authenticode), so first-launch warnings on macOS Gatekeeper and Windows SmartScreen still apply. The bundled README has the bypass for each. Support for user-supplied code-signing certificates is on the way.
• macOS is Apple Silicon (arm64) only for now. Linux is x86_64 only.
• Linux uses WebKitGTK 4.1 (preinstalled on Ubuntu 22.04+, Debian 12+, Fedora 38+, Arch). Older distros may need a one-time install. The bundled README has the package names.
If you've tried xaml.io and bounced off, still genuinely curious what was missing. Bug reports and "this is still missing X" feedback both welcome. We read everything that gets posted here.
Thanks!