make init
test@example.com
, Password123!
※ ⚠ プライベートリポジトリ開発のためenv
をgitに含めています。
※ ⚠ 複数人同時サインインが無理な可能性が高いため、突然ログアウトされる等の事象が生じた場合はテストユーザーではなくご自身のアカウントを使用するか、新しくアカウントを作成してください。アカウント作成にはメール認証等はないため、メールアドレスとパスワードのみ設定いただければ問題有りません。
※ ℹ assets配下にAI自動生成対象用のサンプル画像を用意しているのでよければお使いください。
※ 本番環境でAI自動生成バグ(タイムアウト)が確認されているためAI自動生成を試す際は、ローカルでの確認が良いかと思います。
https://todo-app-ai-bay.vercel.app/
ライブラリ | バージョン | 詳細 |
---|---|---|
Bun | 1.0.8 | パッケージマネージャー |
Next.js | 14.1.0 | Reactフレームワーク |
TypeScript | 5.3.3 | JavaScriptの型付け |
Mantine | 7.6.1 | React UIコンポーネントライブラリ |
trpc | 10.45.1 | TypeScript RPCフレームワーク |
Supabase | 2.39.8 | DB |
Prisma | 5.10.2 | TypeScript用ORM |
NextAuth | 4.24.6 | Next.js認証ライブラリ |
google/generative-ai | 0.3.1 | 生成AI GoogleのGemini |
Biome | 1.5.3 | lint & format |
lefthook | 1.6.1 | pre-commit |
NextAuth
4系、Auth0
を使用Auth0
内でさまざまな認証プロバイダーを簡単に選択可能でNextAuth内の処理もシンプルになりそうであったこと、認証サービスとして知名度やベストプラクティスとして挙げられているのを目にしていたことを重要視して採用Supabase
、Next.js
のAPI Routes、trpc
、Prisma
で実装
Supabase
を使用(ほんとはPlanetScale
を使用していたが有料になるため途中移行作業を行った)trpc
とPrisma
は開発をよりタイプセーフにしたい目的で採用Mantine
で実装
Mantine
はTypeScript環境下でのみ使用できるUIコンポーネントライブラリ作成更新削除系の処理はServerActions、参照はServerComponentsを使用
src/libs/google-cloud/ai/prompt
参照Next.js
+TypeScript
でミニマルな構成で完結させました。本番環境にVercelを使用する予定だったのでバックエンドもNext.js
にすることでインフラ面での苦労がかかりませんでした。またtrpc
とPrisma
の恩恵でかなり型安全な開発ができました。actions or api -> service(domainService) -> repository -> DB