Open7

新規サービスの技術選定

i_am_master_yodai_am_master_yoda

オンラインサロンを開発する案件に際しての技術選定。
コストは低ければ低いほどいい(1. 当たり前 2. 月5000円くらいは許容のつもりだが、メールなどその他のSaaSによる)

主に3点

  • hosting
  • DB
  • Auth

hostingに関してはnext-on-pagesがまともに機能するならcloudflareで行きたい
DBに関してもD1が機能するならfull stack cloudflareで行きたいが現状TXがないので厳しそう
authはnextauth(authjs)がedgeに対応してるっぽくいけるなら採用

  • hosting

    • cloudflare workers
    • vercel (検証しなくていい説)
  • DB

    • turso
    • neon
    • D1(TXないなら除外でいいかも)
    • supabse postgres
  • auth

    • nextauth
    • supabse auth

あとはやりながら変更はあると思うが、以下は決定事項。

  • nextjs
  • RDB

nextjs

スケジュールの関係
普段からnextjsを使っている訳では無い
が一番触れてる時間が自分の中では長い
というよりその他(Remix, sveltekit 等)を触ったことがない

RDB

NoSQLの経験がほぼ皆無

i_am_master_yodai_am_master_yoda

まずはhosting
next-on-page を試す

npx create-next-app@latest my-next-app
rm package-lock.json && pnpm i && pnpm dev

memo
pnpm を使いたい場合はビルドコマンドを pnpx @cloudflare/next-on-pages@1に変更する

一旦deploy

i_am_master_yodai_am_master_yoda

次に turso を試す(少し腰が重い...)
サインアップ後に諸々準備

まずはcliをインストール

brew install tursodatabase/tap/turso

cliからauth

turso auth login

dbの作成
恐らくロケーションから判断して一番近いリージョンに作ってくれる(nrt)

turso db create
i_am_master_yodai_am_master_yoda

次に NexAuth と drizzle の準備をする

NextAuth

pnpm add next-auth@beta
pnpm add @auth/core
pnpm add @auth/drizzle-adapter

Drizzle

pnpm add drizzle-orm postgres
pnpm add -D drizzle-kit
i_am_master_yodai_am_master_yoda

"next-auth": "5.0.0-beta.4" で試したらできるようになってた...
ただyoutubeに出てるpackage.jsonを見ると "next-auth": "5.0.0-beta.3" で謎