Pothos が『TypeScript-first GraphQL』の標準に
PothosはTypeScript-firstなコードファーストGraphQLスキーマビルダーで、従来のSDL(Schema Definition Language)記述やコード生成を不要にします。TypeScriptコードから直接GraphQLスキーマを構築し、リゾルバ・型・引数すべてが完全型安全になる点が特徴。Hasura・Sentry・Linear・Vercel等の本番採用例が公開されており、GraphQL TypeScript開発の本命として2026年定着しました。
採用すべき5つのシグナル
- GraphQLサーバをTypeScriptで書きたい
- SDL → コード生成のサイクルが面倒
- 型安全性を最大化したい
- Prisma/Drizzle ORMと統合したい
- 新規GraphQLプロジェクトを始める
Pothos/TypeGraphQL/Nexus比較
TypeGraphQL: デコレータベース・class-validator・少し古い設計。
Nexus: Prisma公式の選択肢・コードファースト・型推論強い。
Pothos: TS型推論最強・Plugin豊富・Prisma/Drizzle/Auth統合・新しい。
Apollo Federation: 大規模マイクロサービス連邦・Pothosの上に乗せられる。
使い分け: 新規はPothos・既存TypeGraphQLは継続検討。
主要機能
- Schema Builder: 型安全なスキーマ構築
- Prisma Plugin: PrismaモデルからGraphQLスキーマ自動生成
- Drizzle Plugin: Drizzle ORM統合
- Auth Plugin: 認証認可レイヤ
- Errors Plugin: エラー型の標準化
- Relay Plugin: GraphQL Relay仕様対応
- Federation Plugin: Apollo Federation対応
実装パターン
(1) Schema初期化: const builder = new SchemaBuilder({ plugins: [PrismaPlugin] })
(2) Object Type: builder.prismaObject('User', { fields: t => ({ name: t.exposeString('name') }) })
(3) Query: builder.queryType({ fields: t => ({ user: t.prismaField({ ... }) }) })
(4) Mutation: 型安全な引数・戻り値
(5) Schema export: builder.toSchema()でApollo Server等へ
本番採用の判断基準
- 本番実績: Hasura・Sentry・Linear・Vercel等
- SDK安定性: v3でAPIが安定・破壊的変更少
- Prisma/Drizzle連携: 標準Plugin提供
- パフォーマンス: コードファーストで実行時オーバーヘッドなし
- 学習コスト: TypeScript経験者は1〜2週間
実装で詰まる3つの落とし穴
- Plugin組み合わせ: 複数Pluginの相互作用設計
- N+1問題: DataLoader統合の設計
- エラー処理: Errors Pluginでの統一エラー型
30日学習プラン
- 1週目: Pothos基礎・Object Type・Query/Mutation
- 2週目: Prisma Plugin・自動Schema生成
- 3週目: Auth Plugin・認証認可
- 4週目: 本番デプロイ・DataLoader・パフォーマンス最適化
関連リンク
GraphQLは GraphQL実践、Prismaは Prisma実践、Apollo Federationは Apollo Federation深掘り を参照してください。tRPCとの比較は tRPC深掘り もどうぞ。