React 19 · Vite · Rust-native

Murasakiデスクトップアプリのための Next.js DX。

$ pnpm create murasaki@latest my-app
公開まで Murasaki - Next.js DX for native desktop apps | Product Hunt
デスクトップのための Next.js DXネイティブウィンドウネイティブメニューメモリは Electron の約1/5React 19Vite HMRRust ネイティブRust 不要MIT ライセンス

ネイティブアプリ。Web の DX。

01 · Native proof

ブラウザのタブではない。本物の OS ウィンドウ。

Murasaki のウィンドウはネイティブです — 本物のタイトルバー、本物のメニューバー、本物の OS クロームを備えています。どこを右クリックしても、HTML のポップアップではない、本物のネイティブメニューが開きます。

src/app/layout.tsx
import { useAppMenu, Action } from 'murasaki'

useAppMenu([
  { label: 'File', items: [{ role: 'close' }] },
  { role: 'editMenu' },
  {
    label: 'View',
    items: [
      { label: 'Reload', shortcut: 'command,R', action: <Action.Reload /> },
    ],
  },
])

このコードが、このメニューになります。macOS では NSMenu、Windows では HMENU。

Murasaki App

Hello, Murasaki 🦋

The Next.js developer experience — file-based routing, server actions and native menus — in a lightweight Rust shell.

Edit src/app/page.tsx and save to reload.

DocsGitHubmurasaki_js
Try the interactive demo

メニューを触ってみてください — 表示 → 再読み込みは動きます。

01

ネイティブウィンドウ

本物の OS ウィンドウ(wry)— ブラウザのタブでも iframe でもありません。

02

ネイティブメニューバー

アプリと同じ設定から組み立てられる、本物のアプリケーションメニューバー。

03

スコープ付きコンテキストメニュー

useContextMenu(items) は本物の NSMenu / HMENU / GtkMenu を宣言します — ウィンドウ全体にも、要素にスコープを絞った形にも。

02 · Why it exists

ファイルベースルーティング、サーバーアクション、React 19 でネイティブなデスクトップアプリを構築 Electron Chromium ではなく、Rust ネイティブなウィンドウで。Rust を書く必要はありません。

03 · 今すぐ使える機能

デスクトップアプリをリリースするために必要なすべて

ネイティブコードを書く必要も、IPC を手動配線する必要もありません — そのまま動く6つの機能です。

ファイルベースルーティング

src/app/**/page.tsx、レイアウト、動的セグメント — Next.js でおなじみのルーティングです。

Server Actions

'use server' + defineAction / useAction — おなじみの React 19 の形そのままに、ネイティブで動作します。

API Routes

Next.js 風の src/api/**/route.ts による HTTP エンドポイント。別途サーバーを用意する必要はありません。

ネイティブウィンドウ & メニュー

本物のネイティブウィンドウ、ネイティブメニューバー、スコープ付きのネイティブコンテキストメニュー — HTML のポップアップではありません。

UI キット

@murasakijs/ui — Murasaki アプリのために作られた shadcn スタイルのコンポーネントライブラリです。

署名済み配布

コード署名・公証にも対応した、ポータブルな .app バンドル。

04 · 試してみる

右クリックしてみて。

こっそり右クリック。お絵かきもできます

本物の Murasaki アプリなら、ここでネイティブの NSMenu / HMENU が開きます。Web サイト上では……やっぱりただの HTML です。どこかで正直でいないと、ですね。

05 · vs Electron / Tauri

Murasaki を選ぶ理由

React/Next.js を知っていて、Rust を学んだり IPC を手動で配線したりすることなく、軽量なデスクトップアプリを作りたいなら Murasaki を選んでください。

Electron

Murasaki

約1/5

Electron のアイドル時メモリ使用量。

* Electron/Tauri でよく引用されるおおよその目安であり、実測ベンチマークではありません。

01 · UI ランタイム

Murasaki

OS WebView (wry)

Electron

Bundled Chromium

Tauri

OS WebView

02 · 言語

Murasaki

TypeScript / React

Electron

TypeScript / React

Tauri

TypeScript + Rust

03 · DX

Murasaki

Next.js 風(Vite HMR)

Electron

手動配線

Tauri

手動配線

04 · メモリ(アイドル時)

Murasaki

Electron の約1/5*

Electron

基準値

Tauri

05 · サーバーアクション

Murasaki

defineAction / useAction

Electron

手動 IPC

Tauri

手動 IPC / コマンド

06 · 実際に動くアプリ

説明より先に、完成品を試す。

未公証ビルドを一般向けダウンロードとして見せず、標準スキャフォールドと3つの独立アプリをDeveloper CLIから試せます。

Developer Preview · CLI

標準スキャフォールドを、そのままアプリに。

create-murasakiが生成するアプリそのものです。ネイティブメニュー、ファイルベースルーティング、Server Actions、API Routes、同梱Nodeを確認できます。

macOS Developer Preview
pnpm dlx murasaki@latest demo
ビルド詳細とチェックサム

macOS CLIがCPUに合うビルドを選択し、公開SHA256とad-hocコード署名を検証してから、隔離属性を明示的に解除して起動します。

3つのアプリ。3つの方向性。

macOS向けDeveloper PreviewはMurasaki CLIから起動します。未公証アプリを一般向けダウンロードとして見せず、各コマンドが公開SHA256とad-hocコード署名を検証してから隔離属性を解除します。

Violet Notes desktop app

Violet Notes

ローカルファーストなMarkdown編集、ライブプレビュー、入出力、ネイティブメニュー。

macOS Developer Preview
pnpm dlx murasaki@latest demo violet-notes
Murasaki Focus desktop app

Murasaki Focus

永続化するタイマー、キーボード操作、コンシューマー向けデスクトップUI。

macOS Developer Preview
pnpm dlx murasaki@latest demo murasaki-focus
Local Signal desktop app

Local Signal

API Routes、Server Actions、同梱Node、リアルタイムなリクエスト監視。

macOS Developer Preview
pnpm dlx murasaki@latest demo local-signal

07 · Artifacts

実際に届けるのは、これです。

.app / .dmg

macOS

本日から利用可能

.app / .dmg、クロスアーキテクチャ(arm64 / x64)、コード署名・公証にも対応。

.zip / .exe / .msi

Windows

本日から利用可能

.zip ポータブル版に加え、NSIS .exe / MSI .msi インストーラ、クロスアーキテクチャ(arm64 / x64)。

.AppImage

Linux

ロードマップ

murasaki dev は今すぐ動作します。@murasakijs/native は x64/arm64 のビルド済みバイナリを提供済み。アプリのパッケージングはロードマップ上にあります。

1コマンドで、本物のネイティブインストーラへ。macOS と Windows は今すぐ、Linux は近日。

Murasaki

アプリケーション

08 · ごあいさつ

オオムラサキ。

ドラッグで回せます · すべて文字

国蝶オオムラサキ(Sasakia charonda)— murasaki の名前の由来です。create-murasaki がターミナルに描く起動バナーと同じように、すべてテキストで描画しています。

09 · たった3つのコマンド

作成pnpm create murasaki@latest my-app
実行pnpm dev
バンドルpnpm bundle

はじめての、ネイティブアプリを。

React 19、ファイルベースルーティング、サーバーアクション — 本物のネイティブウィンドウの中で動きます。Rust を書く必要はありません。

$ pnpm create murasaki@latest my-app