Technical Stack

このスタックで、診断から会社の記憶までを作る。

Origin Ministry は、作る前に診断し、必要な範囲だけを TypeScript、Astro、React islands、Tailwind CSS、Cloudflare Pages、Workers、Hono、D1、Drizzle、R2、KV、Queues、Access、Zod、Vitest、Playwright、Wrangler、GitHub Actions、OpenAI Responses API、Resend、Stripe で実装します。ユーザーには、何ができて、何を作らないかを先に見せます。

PUBLIC SURFACE

読ませる入口と、動く診断UIを分ける。

PUBLIC SURFACE

Astro

トップ、診断書サンプル、判定ロジック、観測記録、Google/Cloudflare境界など、信用を積み上げる公開ページを高速に作ります。MDXは記事、仕様、記録を増やす時の標準にします。

PUBLIC SURFACE

TypeScript

診断ロジック、ルート判定、管理画面、ポータル生成、Exportの型を揃え、あとからAIエージェントが読み直せる構造にします。

PUBLIC SURFACE

React islands + Tailwind CSS

診断ウィザードや管理UIのように状態を持つ部分だけReactにし、Tailwindでレスポンシブな実務画面をコードとして残します。

BUSINESS BACKEND

受付、判定、保存、管理、納品をCloudflare上に残す。

BUSINESS BACKEND

Hono + Cloudflare Workers

診断受付、監査、管理画面、SaaS連携、Webhook、Export APIを、軽いWorker APIとして構成する標準レイヤーです。

BUSINESS BACKEND

D1 + Drizzle

診断回答、リスク判定、顧客、レポート、ポータル、Export履歴を、移管しやすいSQLite互換DBと型付きスキーマで扱います。

BUSINESS BACKEND

R2

PDF、写真、既存資料、証跡ファイル、納品物、Business Data Vaultの補助資料を、DBではなくオブジェクトとして保管します。

BUSINESS BACKEND

KV

公開設定、一時フラグ、軽い参照データ、キャッシュ可能な情報をedgeに置きます。会社の正本データはD1に残します。

BUSINESS BACKEND

Queues

診断レポート生成、メール通知、AI要約、PDF生成、定期チェック、外部API同期を、画面応答から切り離して処理します。

BUSINESS BACKEND

Wrangler

Cloudflare環境をローカルで検証し、Pages、Workers、D1、R2、KV、Queuesの境界をコマンドで扱えるようにします。

CONTROL

公開範囲と安全な引き渡しを設計する。

CONTROL

Cloudflare Access

管理画面、診断結果、顧客ポータル、社内マニュアルなど、許可された人だけが見る領域の入口を閉じます。

CONTROL

Zod

フォーム、API、管理画面、Exportの境界で入力を検証し、壊れたデータや想定外の形をD1やR2に入れないようにします。

CONTROL

Client-owned handoff

コード、設定、D1/R2境界、Access方針、Export、handoff manifestを揃え、必要なら顧客Cloudflareへ移せる形にします。

VERIFICATION

「動いているはず」ではなく、確認できる納品にする。

VERIFICATION

Vitest

診断スコア、ルート判定、入力検証、認証補助、非公開ゲートなど、壊れると商品に影響するロジックをテストします。

VERIFICATION

Playwright

診断フォームのステップ遷移、モバイル/デスクトップ表示、主要導線をブラウザで確認します。UI再現度だけでなく、実際に進めるかを見ます。

VERIFICATION

GitHub / GitHub Actions

コード、差分、レビュー、CI、デプロイ履歴を残し、エージェントと人間が同じ検証結果を見られる状態にします。

PRODUCT INTEGRATIONS

AI、メール、決済は補助レイヤーとして使う。

PRODUCT INTEGRATIONS

OpenAI Responses API

診断結果の文章化、レポート草案、問い合わせ分類、業務ログ要約、手順書生成に使います。AIは本体ではなく補助魔法です。

PRODUCT INTEGRATIONS

Resend

診断受付、管理者通知、レポート送付通知、フォローアップなど、必要なメールだけをコードから送ります。

PRODUCT INTEGRATIONS

Stripe

有料診断、実装設計書、着手金、Managed Careなど、商品境界が固まったものだけに使います。決済から商品を決めません。

NOT DEFAULT

GUIに閉じるもの、重すぎるものは標準スタックにしない。

NOT DEFAULT

Google Sites / AppSheet

GoogleはAPI連携先として使います。Sitesで社内ポータルを作る、AppSheetで業務アプリを作る、SheetsをDBにする仕事は中核にしません。

NOT DEFAULT

No-code / GUI-only SaaS

手作業でしか再現できないSaaS設定、スクリーンショット手順書、GUI前提の構築は、エージェントが直せる会社の記憶になりません。

NOT DEFAULT

Heavy default stack

Kubernetes、Docker前提の重い構成、Redis、GraphQL、Next.js、Vercel、Supabase、PostgreSQLは、今の主戦場では標準にしません。

WHAT THIS ENABLES

ユーザーが知りたいのは、技術名ではなく「これで何ができるか」。

WHAT THIS ENABLES

会社の損失診断

フォーム入力から属人化、教育ロス、在庫判断、予約漏れ、情報散乱を判定します。

WHAT THIS ENABLES

診断書と設計書

有料診断書、実装設計書、30日ロードマップ、作らない範囲をHTML/PDF/Exportで残します。

WHAT THIS ENABLES

業務ポータル

FAQ、手順、教育、判断基準、証跡、Data Vaultを顧客別ポータルとして生成します。

WHAT THIS ENABLES

顧客環境への引き渡し

Cloudflare、D1、R2、Access、Export、handoff manifestを揃え、囲い込まない納品にします。

DECISION

技術から売らず、診断結果に必要な技術だけを使う。

このスタックは、何でも作るためではなく、作らない範囲、SaaSに任せる範囲、社内ツール化する範囲、顧客所有環境へ残す範囲を切った後に使います。