2025年12月、bulldoc で Google ドキュメント風 UI + OpenAPI 仕様駆動開発を試した。名前のとおりブルドッグがモチーフで、機能名もちょっと犬寄りにしてある。

技術スタック

  • Next.js 16 + React 19
  • Drizzle ORM + SQLite(libSQL / Turso)
  • Biome + Vitest + Playwright
  • OpenRouter API(マルチモデル対応の AI)
  • SWR でデータフェッチ

作った機能(MVP)

スキーマから一気に立てた。projects / documents / bone anchors / memories / reviews というテーブル構成。

  • bone anchor — プロジェクトの制約(守るべき前提)を「骨」として固定する
  • barking review — ドキュメントの曖昧さ・矛盾を自動で検出して「吠える」レビュー
  • memories — 文脈の保持
  • RAG(Retrieval-Augmented Generation)+ OpenRouter でマルチモデル
  • Google Docs 風 UI:ドキュメント一覧、Ctrl+K のコマンドパレット、全画面エディタ、2秒デバウンスの自動保存
  • Route Groups でレイアウトを出し分け(home / editor / dashboard)

途中でセキュリティ監査もして、API キーの暗号化保存・入力検証・エラー詳細の漏洩防止を直し、ユニット 71 + E2E 42 まで拡充した。

OpenAPI first でやってみて

OpenAPIを唯一の仕様書にする の実装編として、仕様書を先に置いて UI/API を生やした。プロトタイプとの相性は良い。ただ正直に言うと、スキーマを変えるたびに FE / BE 両方を直すサイクルは覚悟が要る。仕様が一次情報になる気持ちよさと、変更コストはトレードオフ。

おわり

このあと「ビジネス固有のコードは全部消して、技術スタックだけ残す」コミットで、bulldoc 本体の機能は剥がしてテンプレ化した。アイデアを一度フルで作ってから、再利用できる骨格だけ残す、という整理。bone anchor / barking review の発想は、リアルタイムコラボエディタ の方に引き継いでいった。