コンテンツにスキップ

検索はプロダクションビルドでのみ利用可能です。 ローカルでテストするには、サイトをビルドしてプレビューしてください。

Apps (フロントエンド)

Speakeasy のフロントエンドは SvelteKit 5 + Svelte 5 (Runes) で構築された2つのアプリケーションで構成されています。両アプリとも Cloudflare Workers にデプロイされ、SvelteKit Remote FunctionsNative RPC を通じてバックエンドサービスと通信します。


カテゴリ技術バージョン
フレームワークSvelteKit2.50.0
UI ライブラリSvelte 5 (Runes)5.47.1
スタイリングTailwind CSS v4 + daisyUI 54.1.18 / 5.5.14
ビルドVite7.3.1
デプロイ@sveltejs/adapter-cloudflare7.2.5
バリデーションZod4.3.6
テストVitest4.0.17
ランタイムCloudflare Workerscompatibility_date: 2025-11-03
  • SvelteKit Remote Functions: 有効(experimental)
  • Async Compiler: 有効(experimental)
  • Remote Bindings: 有効(dev 環境で Cloudflare の Service Binding をリモート利用)
  • Observability: ログ・トレース 100% サンプリング
  • リージョン: aws:ap-northeast-1(東京)

Counter(店舗管理コックピット)

Section titled “Counter(店舗管理コックピット)”

店舗スタッフが顧客とのコミュニケーションを管理するメインアプリケーションです。

項目内容
パスapps/counter
ドメイン(本番)counter.plfumg.com
ドメイン(開発)counter.plfumg.net
開発ポート5174
バインディングサービス用途
PROOFProof認証・セッション管理
VINTAGEVintage連絡先・グループ管理
FIZZFizzチャット・一括配信
BASEBase組織・店舗情報
BELLBell通知設定・配信
src/lib/
├── proof-rpc.ts # 認証サービスクライアント
├── vintage-rpc.ts # 連絡先サービスクライアント
├── fizz-rpc.ts # チャットサービスクライアント
├── base-rpc.ts # 基盤サービスクライアント
└── bell-rpc.ts # 通知サービスクライアント
ファイル機能領域
chat.remote.tsチャットメッセージ送受信
chatrooms.remote.tsチャットルーム一覧・管理
contacts.remote.ts連絡先一覧・検索
contact-crud.remote.ts連絡先の作成・更新・削除
contact-groups.remote.ts連絡先グループ管理
contact-labels.remote.tsラベル管理
contact-chat-ng.remote.tsチャットNG管理
domain-blacklist.remote.tsドメインブラックリスト
notifications.remote.ts通知一覧
shop-notifications.remote.ts店舗通知設定
shop-settings.remote.ts店舗設定
files.remote.ts添付ファイル管理
accounts.remote.tsアカウント管理
availability.remote.tsオンライン状態管理
search.remote.ts横断検索
line.remote.tsLINE 連携
benchmark.remote.tsパフォーマンス計測
components/layout/getUserProfile.remote.tsユーザープロフィール取得
components/layout/Sidebar.remote.tsサイドバーデータ
components/ThemeSwitch.remote.tsテーマ切替
src/routes/
├── (authorized)/ # 認証済みユーザー向け
│ ├── chat/ # チャット
│ │ └── [roomId]/ # チャットルーム詳細
│ ├── contact/ # 連絡先
│ │ └── [id]/ # 連絡先詳細
│ ├── broadcast/ # 一括配信
│ ├── settings/ # 設定
│ │ ├── notice/ # 通知設定
│ │ ├── shop/ # 店舗設定
│ │ │ └── line/ # LINE 連携
│ │ │ └── callback/ # LINE コールバック
│ │ └── tags/ # タグ管理
│ ├── account/ # アカウント設定
│ └── push-test/ # プッシュ通知テスト
├── (guest)/ # 未認証ユーザー向け
│ ├── sign-in/ # サインイン
│ └── no-shop/ # 店舗未登録
├── select-shop/ # 店舗選択
├── auth/ # 認証
│ └── sso/ # SSO コールバック
└── api/ # API ルート
├── broadcast/ # 配信 API
│ ├── count/ # 受信者数取得
│ ├── recipients/ # 受信者一覧
│ └── [id]/ # 配信操作
│ ├── cancel/ # キャンセル
│ ├── execute/ # 実行
│ └── recipients/ # 受信者一覧
└── settings/
└── notifications/
└── test/ # 通知テスト送信
変数名説明
PUBLIC_DOOR_URLDoor ゲートウェイの URL
PUBLIC_LINE_LIFF_IDLINE LIFF アプリ ID
PUBLIC_BASE_URLアプリのベース URL
PUBLIC_LINE_BOT_IDLINE Bot ID

システム管理者がアカウント・組織・システム設定を管理するための管理コンソールです。

項目内容
パスapps/penthouse
ドメイン(本番)penthouse.plfumg.com
ドメイン(開発)penthouse.plfumg.net
開発ポート5173
バインディングサービス用途
PROOFProof認証・セッション管理
VINTAGEVintage連絡先管理
BASEBase組織・アカウント管理

注意: Counter と異なり、Penthouse は Fizz(チャット)と Bell(通知)へのバインディングを持ちません。

バインディング種別用途
ANALYTICSAnalytics EngineDB オペレーショントラッキング(speakeasy_db_operations)
src/lib/
├── proof-rpc.ts # 認証サービスクライアント
├── base-rpc.ts # 基盤サービスクライアント
├── auth-client.ts # better-auth クライアント
└── server/
└── vintage-rpc.ts # 連絡先サービスクライアント(サーバー側のみ)
ファイル機能領域
features/accounts/api/accounts.remote.tsアカウント管理
organizations/api/organizations.remote.ts組織管理
features/analytics/sql-explorer/api/operations.remote.tsDB オペレーション分析
features/analytics/sql-explorer/api/stats.remote.ts統計情報
features/analytics/sql-explorer/api/tables.remote.tsテーブル情報
cloudflare/database.remote.tsCloudflare DB 操作
cloudflare/sql.remote.tsSQL エクスプローラー
cloudflare/storage.remote.tsストレージ操作
cloudflare/workers.remote.tsWorkers 管理
components/layout/getUserProfile.remote.tsユーザープロフィール取得
components/layout/Sidebar.remote.tsサイドバーデータ
components/ThemeSwitch.remote.tsテーマ切替
src/routes/
├── (authorized)/ # 認証済みユーザー向け
│ ├── account/ # 自分のアカウント設定
│ ├── accounts/ # アカウント一覧管理
│ ├── organizations/ # 組織管理
│ │ └── [id]/ # 組織詳細
│ ├── impersonating/ # 代理ログイン
│ ├── admin/ # システム管理
│ │ ├── accounts/ # アカウント管理
│ │ ├── billing/ # 請求管理
│ │ ├── cloudflare/ # Cloudflare リソース管理
│ │ ├── database/ # データベース管理
│ │ ├── domain-blacklist/ # ドメインブラックリスト
│ │ │ └── [id]/
│ │ ├── global-domain-blacklist/ # グローバルブラックリスト
│ │ │ └── [id]/
│ │ ├── oidc/ # OIDC 設定
│ │ ├── organizations/ # 組織管理(管理者向け)
│ │ ├── scim/ # SCIM プロビジョニング
│ │ └── sql/ # SQL エクスプローラー
│ └── api/
│ └── auth/
│ └── error/ # 認証エラーハンドリング
├── (guest)/ # 未認証ユーザー向け
│ ├── sign-in/ # サインイン
│ └── unauthorized/ # 権限不足
└── api/
└── organizations/
└── external-info/ # 組織外部情報 API
変数名説明
PUBLIC_DOOR_URLDoor ゲートウェイの URL

両アプリケーションは同一のデータフローパターンを使用しています。

ブラウザ (Svelte 5 コンポーネント)
↓ Remote Function 呼び出し(自動シリアライズ)
SvelteKit サーバー (*.remote.ts)
↓ RPC クライアント (*-rpc.ts)
Service Binding (platform.env.{SERVICE})
↓ Native RPC(V8 構造化クローン)
WorkerEntrypoint (各サービス)
↓ Drizzle ORM / Durable Objects / Queues
PostgreSQL (Hyperdrive) / KV / R2

詳細は Native RPC & Service Bindings およびデータフローを参照してください。