For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/desktop/tech-stack.md (or send Accept: text/markdown).
Desktop テクノロジー スタック
Tauri シェル内部のテクノロジーとそれぞれの役割。
始める前に
Desktop アプリは意図的に薄く作られています: Rust コアがネイティブ ウィンドウを所有し、webview が Web アプリを読み込みます。以下のすべてはすでにチェックアウトに固定されています — このページは、後のガイドが理解できるよう各部分の役割を説明します。
プロダクト UI、認証、課金、AI はすべてウィンドウが読み込む Web コードベースにあります。Desktop 専用チェックアウトにはシェルだけが含まれます — このスタックが意図的に小さいのはそのためです。
Tauri 2 + システム webview
Tauri 2 は OS 固有の webview — Windows の WebView2、macOS の WebKit、Linux の WebKitGTK — でアプリをレンダリングするため、シェルは小さく保たれ、バンドルされたブラウザー ランタイムを持ちません。frontendDist は apps/desktop/ui (Web アプリの読み込み中に表示されるブート ページ) を指すため、コールド スタートでも空白のウィンドウがレンダリングされません。
Rust + TypeScript
シェルの動作は Rust — src-tauri/src、エディション 2021、最低 Rust 1.90 — で、cargo がビルドします。TypeScript で書かれた小さな Node スクリプトがリリース プレフライトとアップデーター マニフェストを処理します。
プラグインによるネイティブ機能
ウィンドウ状態、単一インスタンス、ディープリンク、グローバル ショートカット、トレイ、ログイン時の起動、アップデーター、外部リンクを開く、ダイアログ、プロセス制御はすべて tauri-plugin-* クレートから来ます — シェルは独自の IPC コマンドを追加しません。ネイティブ機能の追加とは、別のプラグインを登録するか、すでにあるものを配線することを意味します。
tauri.conf.json + capabilities
バンドル識別子 com.supastack.desktop、ウィンドウ リスト、プラグイン オプション、アップデーター エンドポイントは src-tauri/tauri.conf.json にあります。webview の権限は src-tauri/capabilities/default.json にあります — 現在は core:default にシステム ブラウザー リンク用の opener:allow-open-url を加えたもの — で、ネイティブ機能が必要とするときのみ拡大されます。
検証ツール
cargo test は Rust ロジック — URL 解決、ナビゲーション ゲート、ディープリンク マッピング、アップデーター チャンネル、ズーム、ウィンドウ設定 — をカバーし、node --check はブート ページを検証し、check:release-config はリリース ビルドをゲートします。CI は 3 つすべての OS をビルドします。
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop check:release-config