コンテンツへスキップ
supastack
ドキュメントを閲覧

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/internals.md (or send Accept: text/markdown).

デスクトップシェルの内部

ブートページ、ナビゲーションゲート、プラグインスタック、設定リファレンス。

このガイドについて質問
開くアプリ

ブートページ

ウィンドウはまず apps/desktop/ui のバンドルページを読み込みます。注入された __SUPASTACK_APP_URL__ を読み、10 秒のタイムアウトでバックエンドをプローブし、到達できれば転送します。バックエンドに届かない場合は、ネットワーク回復時にも発火する Retry 付きの Can't reach host 状態を描画するため、コールドスタートで空白のウィンドウにはなりません。?target= クエリパラメーターで、通常のブラウザーでもこのページを試せます。

ネイティブ機能は IPC ではなくプラグイン

シェルはカスタムコマンドを登録しません — すべてのネイティブ機能は Tauri プラグイン経由で届きます。deep-link 機能付きの single-instance(Windows と Linux で 2 回目の起動引数をルーティング)、deep-link、window-state(ジオメトリのみ — ズームとチャネルは独自のサイドカーを保持)、opener、dialog、process(アップデート後の再起動)、updater、autostart、global-shortcut、そして tray-icon 機能です。シェルを拡張するには、webview の UI をフォークするのではなく、プラグインとパーミッションを追加します。

ナビゲーションゲート

ナビゲーションがシェル内に留まるのは、バンドルされたシェルページ、dev サーバーのオリジン、設定されたアプリの正確なオリジンだけです。資格情報のない HTTP(S)、mailto:、tel: のリンクは opener プラグイン経由でシステムブラウザーに出ます。それ以外のスキームはすべてキャンセルされます。ウィンドウが存在する前に届いたディープリンクは managed state にバッファされ、ウィンドウができた時点で適用されます。

設定とケイパビリティのリファレンス

tauri.conf.json は productName、version(リリース前にバンプ — ワークフローが上書きできます)、識別子(check:release-config は com.supastack.desktop からの変更を要求)、supastack のディープリンクスキーム、アップデーターのセンチネルブロック、バンドルターゲット、プレースホルダーアイコンを設定します。capabilities/default.json は core:default と opener:allow-open-url を付与します — 新しいプラグインが必要とする場合にのみ広げてください。

シェルのテスト方法

corepack pnpm --filter @supastack/desktop test はブートページを構文チェックし、URL 解決、ディープリンク、ズーム、チャネルロジックをカバーする Rust ユニットスイートを実行します。typecheck は cargo check を実行します。JavaScript のリリーススクリプトはリポジトリの vitest スイートでカバーされ、CI パイプラインはすべての変更で 3 つの OS 上の実際のインストーラーをビルドします。

corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config

検証とトラブルシューティング

src-tauri に触れた後はパッケージスイートを実行し、その後各対象 OS でネイティブの動作を手で確認してください — ユニットチェックが証明するのはルールであり、ウィンドウではありません。新しいシェルの動作はプラグインとメニュー項目の内側に収め、webview を素の Web アプリのままにしてください。

よくある質問

14 件の質問

supastack とは何ですか?

supastack は AI SaaS 製品を構築するためのモジュラー基盤です。共通インフラをまとめて提供するので、製品固有の機能に集中できます。

Web とモバイルに対応していますか?

はい。supastack には Web とモバイル体験の出発点として Next.js アプリと Expo アプリが含まれています。

どの認証が含まれていますか?

Better Auth がメール/パスワード、OTP、ソーシャルログインをカバーします。個人ワークスペースはアカウントと一緒にプロビジョニングされ、初日からレコードが境界内に収まります。

AI はどうサポートされていますか?

supastack には設定可能なマルチプロバイダー AI、使用量追跡、予算、暗号化された自前キー(BYOK)サポートが含まれています。

サブスクリプションはどう管理されますか?

このキット上に構築された製品では、Stripe 課金・サブスクリプション・権限が有料アクセスの基盤になります。プロバイダーの秘密はサーバー側に留まります。

製品固有のコードはどこに置きますか?

製品固有の機能は別のコードベースに置き、製品側が supastack の基本モジュールを設定・統合します。

supastack の価格は?

キットは生涯アップデート付きの一回払いです:シングルスタック 249 ドル(Next.js(Web)、Expo(iOS・Android)、Tauri(macOS・Windows デスクトップ)の各リポジトリから1つ選択)、デュアルスタック 398 ドル(任意の2リポジトリ)、またはフルバンドル 399 ドル(3つのリポジトリすべてと完全なモノレポ)、追加開発者シート 1 席 75 ドル。キットのサブスクリプションはありません。このサイトのチェックアウトはライセンスキーをメールで配信し、GitHub 招待でリポジトリアクセスを提供します。

ワークスペースはどうデータを囲いますか?

ユーザーレコードは workspaceId でスコープされます。認証、権限、AI 使用量、課金イベント、監査エントリは個人ワークスペースの境界内に留まります。

バックグラウンドジョブはどう機能しますか?

Trigger.dev が明示的なジョブランタイムです。JobRunner コントラクトは enqueue・status・cancel のみを約束し、ワークフロー意味論は Trigger.dev 固有で明示的です。

メールとアウトリーチの違いは?

トランザクションメールはタスク完了通知などの製品ワークフローをカバーします。コールドアウトリーチやキャンペーンは製品自身に属し、このキットのメールモジュールの外です。

モバイルの購入はどのように機能しますか?

モバイルでは RevenueCat によるネイティブ購入と復元に対応し、アクセス権をサーバーで検証します。公開前にストアアカウントを設定し、実機テストを完了してください。Web 課金は別に管理します。

AI プロバイダーのキーはどこにありますか?

BYOK 認証情報は暗号化され、サーバー側に留まります。キーはログでサニタイズされ、使用量と予算はワークスペースレベルで可視です。

チェックアウトで使える支払い方法は?

Stripe ホストのチェックアウトはカードを受け付け、Stripe アカウントでウォレットを有効にすれば Alipay と WeChat Pay も提供できます——中国の購入者に便利です。ウォレット認可は非同期で確定するため、決済完了と同時にライセンスページが更新されます。

返金を受けることはできますか?

リポジトリへのアクセス権を取得した後は、supastack は永久にあなたのものとなるため、返金はできません。ですがご安心ください。生涯アップデートを含む完全なソースコードを入手し、ご自身やクライアントのために無制限にプロダクトを構築・公開できます。コードの転売や、リポジトリをスターターキットやテンプレートとして再配布することのみ禁止されています。

JA
テーマ