【ベータ参加者募集】競合30社が「AIを入れられない理由」を調べたら、自分が作るべき市場が見えた話
整体院向けのSaaS「Medini」を個人で開発しています。
開発中に「なぜ誰もやっていないのか」を調べたら、作るべき理由がはっきりした話を書きます。
整体院でお世話になっている先生と話す中で、各サービス——電子カルテ、予約管理、経営などに特化しているサービスは存在しているが、それらが一本化されたようなアプリがないことを聞いた。
エンジニアとして「本当に?」と思って、調べ始めた。次に作るプロダクトの方向性が見えてきた気がした。
競合30社以上を調べてわかったこと
日本国内の治療院向けSaaSは20社以上ある。COCKPITやリピクル、スリーズプロ、カルッテなど。海外にもJane App、ChiroTouch、Clinikoなど成熟したサービスが存在する。
調べてわかったのは、市場が大きく分断されているという事実だった。
| カテゴリ | 代表サービス | 弱点 |
|---|---|---|
| 予約・集客 | HPB、EPARK | 院内管理なし |
| カルテ・問診票 | リピクル、カルッテ | AI機能なし |
| 経営分析 | COCKPIT(4,000院) | カルテ・問診票なし |
それぞれは優れている。でも「全部入り」が存在しない。先生たちは複数のツールを行き来しながら、それでも月報は手作業で作っている。
さらに決定的なことがわかった。OCR機能(紙カルテをスマホで撮るだけでデジタル化する機能)を持つ治療院向けSaaSは、調査した競合全10社で一社もなかった。
なぜ既存企業はAIを入れられないのか
ここが核心だ。おおよそ私以外にも同じアイデアを持つ人がいるのは当然だろうという考えの元、「なぜ誰もやっていないのか」を考えると、答えが見えてくる。
既存のSaaSは月額数千〜1万円のサブスクで収益を上げている。Claude APIのようなAIを本格的に使うと、月報生成・AI経営アドバイスのコストが1ユーザーあたり数百円〜数千円かかる。今の価格帯では収益が吹き飛ぶ。料金を上げれば既存ユーザーが離脱する。この**「収益モデルの罠」**に既存企業は全員はまっている。
統合しない理由も同じ構造だ。リピクルがAI月報を追加した瞬間、COCKPITと正面衝突する。今は住み分けが成立しているから、意図的に競合しないようにしている。加えて、古いシステムにAIを後から追加しようとするとアーキテクチャから作り直しになる。既存ユーザーへの影響を考えると動けない。
なぜ今、個人が作れるのか
まさに今この瞬間というタイミングがあること、それから企業ではなく個人であることの強みが活かされることが背景にある。
2024〜2026年のLLMコスト急落、Claude APIのプロンプトキャッシュ(最大90%コスト削減)という技術環境と、既存プレーヤーの「動けない理由」が重なるタイミングに、ゼロからAI前提で設計できる。
最初からAIコストを価格に織り込んで設計できる。これは後から参入する側の最大のアドバンテージだ。
市場が「統合した方がいい」と気づいたとしても、既存企業が動けるのは3〜5年後だと思っている。大きな企業ほど承認のプロセス、戦略の練り直しなどの特有の問題が生まれてくる。今この時期に、しかも個人で、これは最大のアドバンテージになる。
技術構成
Next.js 14 (App Router) + TypeScript
Supabase (PostgreSQL) + Prisma v7
Supabase Auth (@supabase/ssr)
Stripe
Claude API (Vision API for OCR)
Vercel / PWA
Sentry
OCRの設計方針:画像をサーバーに保存しない
紙カルテには氏名・生年月日・症状など極めてセンシティブな個人情報が含まれる。保存する必要がないデータは持たない——それがMediniの設計方針だ。
// メモリ処理のみ、Storageには一切保存しない
const arrayBuffer = await file.arrayBuffer()
const base64 = Buffer.from(arrayBuffer).toString("base64")
const response = await anthropic.messages.create({
model: "claude-haiku-20240307",
messages: [{
role: "user",
content: [
{
type: "image",
source: { type: "base64", media_type: file.type, data: base64 }
},
{ type: "text", text: "カルテから患者情報をJSON形式で返してください..." }
],
}],
})
// base64はここで終わり。Storageには一切保存しない
RLSで院ごとにデータを完全分離
CREATE POLICY "clinic_isolation" ON patients
USING (clinic_id = (
SELECT clinic_id FROM clinic_users
WHERE user_id = auth.uid()
));
モデルの使い分けとコスト
OCRにはHaiku($0.25/MTok)、月報生成にはSonnet($3/MTok)を使い分けている。月報のシステムプロンプトはプロンプトキャッシュで最大90%削減できる。
現在の状況
- DBスキーマ・認証・RLS・OCR・AI月報・Stripe Webhook 実装済み
- 紹介コード・プラン制限・監査ログも実装済み
- ドメイン medini.app 取得済み
- 整体院でベータ利用中
ベータ参加者を募集しています
特典
- ベータ期間中は完全無料
- 入力したデータは正式版にそのまま引き継がれる
- ベータ参加者には正式版リリース時に特典を提供(※数に限り有)
- 直接的なやり取りを通じてフィードバックを頂ける協力者には、永久無料ライセンスを発行
- 機能開発への意見を直接反映できる
整体院・鍼灸院・接骨院を経営している方の知り合いがいれば、ぜひ紹介してください。
またこのプラットフォームにはエンジニアの方が中心かと思うので、技術的なアドバイスを頂けるととてもうれしいです。
まずは15分のデモからお試しください。「使えそうかどうか」だけ確認してもらえれば十分です。
→ デモページ:https://www.medini.app/demo/dashboard
→ ベータテスト参加:medini.app
技術的な質問はコメントかX(@Satsuki_dev)で。
この記事はnoteにも掲載しています。
https://note.com/satsuki_dev