Build real macOS and Windows apps with React 19 and the Next.js DX you know: file-based routing, Server Actions, API routes, native menus, installers, and signed updates. Murasaki uses the OS WebView and a prebuilt Rust shell, so there is no bundled Chromium or Rust toolchain to install. Open source, TypeScript-first, and ready to start with one command.
Hi Product Hunt 👋
I build for the web. When I wanted to ship a desktop app, neither option felt like "just keep writing the app I already know how to write": Electron ships a whole Chromium, and Tauri — which is a genuinely good project — hands you a framework-agnostic shell and a Rust toolchain, not the Next.js-shaped app model I actually wanted.
So I built Murasaki. The idea is narrow on purpose: keep the Next.js developer experience, put it in a native shell.
• src/app/**/page.tsx is a route. Nested layouts, dynamic segments, loading / error / not-found boundaries — no router to configure.
• Server Actions and API routes work, and they actually run in Node, inside your app.
• Right-click opens a real OS menu — NSMenu on macOS, HMENU on Windows — not an HTML popup wearing a costume.
• The native layer is a Rust binding I wrote, but you call it from TypeScript, and there's no Rust toolchain to install — prebuilt binaries ship for all six targets. (If you need something the binding doesn't expose yet, that's a Rust change. I'm not going to pretend otherwise.)
Why bundle Node, when it makes the installer bigger? Because it's what makes Server Actions and API routes real rather than a shim — your 'use server' function runs in an actual Node process next to the window. I'd rather state the trade-off than bury it: the demo .dmg on GitHub is 44 MB and the installed .app is 121 MB, because Node is in there. If a small binary is your hard requirement, Tauri is the better answer, and I'd tell you so.
Auto-update and Windows packaging both land in this release: signed manifests, SHA-256-verified downloads, the app replaces itself and relaunches, and Windows installers cross-compile from a Mac. I spent last week finding out what actually breaks on real Windows hardware instead of assuming it worked — a Program Compatibility Assistant warning, an uninstaller that would delete files out from under a running app, and WebView2 processes leaking on every quit were all real, and all fixed.
Where it isn't there yet, plainly: Linux runs `murasaki dev` but has no packaging. Windows arm64 can build but can't auto-update. The binaries aren't code-signed. It's pre-1.0 and the API can still move.
What I'd love feedback on: does the Next.js-shaped API actually feel right, or does it break where you'd expect it to hold? And what's the first thing you'd try to build with it?
— ichi
Report
Tried it on a small project and the file-based routing just worked in a real native window without me touching a Rust toolchain, which honestly felt like magic. The installer is chunky but the Server Actions actually running through Node is a nice tradeoff.
Thanks for trying it out! Could you share a bit more detail about what felt chunky about the installer—such as the download size, install time, startup time, or anything else? That would help us look into possible improvements.
Report
finally someone using the os webview instead of bundling chromium, that detail alone saves so much on install size and honestly feels like the right call. excited to try it out
Report
No reviews yetBe the first to leave a review for Murasaki
Tried it on a small project and the file-based routing just worked in a real native window without me touching a Rust toolchain, which honestly felt like magic. The installer is chunky but the Server Actions actually running through Node is a nice tradeoff.
@hamitk7s6
Thanks for trying it out!
Could you share a bit more detail about what felt chunky about the installer—such as the download size, install time, startup time, or anything else? That would help us look into possible improvements.
finally someone using the os webview instead of bundling chromium, that detail alone saves so much on install size and honestly feels like the right call. excited to try it out