PoetryBirdを構築するために使っているシステム構成

こんにちは。代表の高橋です。
合同会社フォルテラで開発、運営している詩の投稿サイトPoetryBirdを構築するために、Supabaseを採用しました。 PoetryBird https://www.poetrybird.com/ Supabase https://supabase.com/ SupabaseはPostgreSQLをベースにしたオープンソースのバックエンドサービスで、いわゆるBaaS (Backend As A Service) と呼ばれるカテゴリに入ります。 最近、個人開発者の間でも特に人気が高まっており、Firebaseに代わって人気が出ているサービスです。FirebaseがドキュメントベースのNoSQなのに対して、PostgreSQLベースというのがかなり違いますね。 今回のPoetryBirdの構築で使っているシステム
- フロントエンド
- Next.js
- バックエンド
- Supabase
- ホスティング
- Vercel
- CI/CD
- Github Actions
- 決済システム
- Stripe
- メール送信
- Resend
- AI関連
- いくつかのサービス
私自身、Supabaseを使うのは今回が初めてで、手元のDockerローカル環境で基本機能を実装してシステムを動かすところまでは巷で言われているように相当に早く構築できましたが、実際に運用をスタートするまでにはそれなりに時間がかかってしまったのがありました。
CI/CDでどうやって安全にStagingとProductionを切り分けつつ、Supabaseへデプロイするかというところで、どうしても自動デプロイだけでは設定しきれない部分が残り、その辺りを手動調整するたびにミスを連発して、問題の原因を特定するために調査したり、環境を構築しなおしたりといったことで時間を消費してしまいました。
また、SupabaseではRLS (Row Level Security) というデータベースのテーブル内の行へアクセスする際に認証されたユーザーかどうか、その行のデータと一致するユーザーかどうかで読み込みや書き込みなどを制御する機能があるのですが、PoetryBirdのように投稿された詩や作者名は誰でも見れるような形にする際に、行単位でのアクセス制限だけでは制御しきれず、そこをどのように解決するかで、かなり時間を消費してしまったこともありました。
あとは運用として公開するためにはソーシャルログインや決済システムで、ビジネス認証をして実態のある会社であり、問題がないことをきちんと承認してもらうのにも、一定の時間を取られた部分になります。 そんなこんなで、手元で早期に動いていたのを、オープンベータテストを開始するまでには、当初考えていたよりもかなり時間を取られてしまいましたが、一度、Supabaseを使ってシステムを構築して運用まで持っていっておくと、次回以降のSaaSサービスの構築はもう少し早くできるのではないかと思います。 なお、今回はホスティングにVercelを利用していますが、有料プランで運用しているので、こちらも一定コストがかかってきますので、全体での運用コストについては継続して確認、検討していこうと考えています。 小規模から中規模までのWEBアプリやSaaSサービス構築でお困り、相談事がありましたら、何でも弊社へお気軽にご相談ください。 合同会社フォルテラへのお問い合わせ