皆さんはモテたことありますか?私はガチでモテます。
モテるために一番重要なことは何だと思いますか?容姿でもファッションセンスでもトーク力でもありません。ガチでモテる男はいい BaaS を選びます。
BaaS とは
BaaS は Backend as a Service の略です。バックエンドというのはユーザから見えない部分という意味で、Web の文脈では主に DB 周辺の機能を指します。サーバにデータを保存したり、保存したデータを使ってユーザの認証を行ったりするのがバックエンドの仕事です。要するに地味な仕事です。
しかし地味な割にはめちゃくちゃ難しく、かつセキュリティホールを産みやすい重要な部分です。認証の機能なんかを MySQL で真面目に作っていると気が狂います。実際に私の周辺にいるバックエンドエンジニア(クラウドエンジニア等を含む)は皆気が狂ってしまっています...。
BaaS はそんな 3K(くさい、きたない、くさい)仕事であるバックエンドに必要な機能の多くを Web API として提供してくれます。いい BaaS を選ぶ事で、私たちは最小限の労力でバックエンドを用意し、優雅にイケイケなフロントエンド(ユーザ画面側のプログラム)を作ることができるのです。3I(いいにおい、イケてる、いいにおい)です。
今回はなんとガチでモテる私が特別に、ガチでモテるための BaaS を3個紹介してあげます。
1.Firebase
BaaS といえばこれ!Google の Firebase です。有名です。
主な機能は認証(Authentication)、DB(Cloud Firestore)、ストレージ(Storage)、ホスティング(Hosting)の4つです。Firebase に限らずこの辺の機能は他の BaaS にも備わっていることが多いです。

-
認証
ユーザ認証です。E メールとかパスワードとか求められるやつです。二要素認証などを自分で実装するのはめちゃくちゃ難しいですが、提供してくれています。
-
DB
データベースです。WebAPI を通して操作するため SQL を書く必要はありません。ブログの記事データなどの保存に使います。
-
ストレージ
画像や動画など大きめのファイルなどを保存するのに使用します。
-
ホスティング
Apache や Nginx のようなものと似ていますが、フロントエンド側のプログラムを配信する機能です。Netlify や Cloudflare Pages など他のホスティングサービスを使うこともできます。
Firebase は Google が運用している大規模な Web サービスであり、安定稼働が期待できます。小規模向けの Spark プランなら無料で利用することもできますし、大規模向けへのスケーリングも簡単に行うことができます。お金さえ払えば。
また、有名なサービスを使用していると、そのサービスを使ったプロジェクトに出会う機会も多く、追加の勉強の手間を省きやすいメリットがあります。
なおこのような BaaS を提供しているのは Google だけではなく、例えば Amazon では Amplifyというサービスを提供しています。AWS が好みならこちらがいいでしょう。
2.Supabase
クラウドに大事なデータを保存したくないですか?そんなあなたにオススメなのが Supabase です。
Supabase は公式ページにも書かれている通り、OSS(オープンソースソフトウェア)の Firebase 代替品です。
Supabase is an open source Firebase alternative.
OSS であるため自前のサーバに Supabase を立ち上げることができます。Firebase と比べても遜色ない機能の多さです。自分だけの BaaS がジャンク品オンボロ Fujitsu PC に立ち上がるなんて...。
しかも Supabase は内部で PostgreSQL というきちんとしたリレーショナルデータベースを使用しています。そのため SQL でもデータを操作することができ、バックエンドが得意な人にもオススメです。
他に OSS としては Appwrite というものがあります。
3.Pocketbase
Supabase は難しくて挫折しましたか?そんなあなたにオススメなのが Pocketbase であり、ガチでモテる私が最推しする OSS の BaaS です。
Pocketbase は Supabase とは異なり本当に最小限の機能しか提供していません。
Realtime database | Authentication | File storage | Admin dashboard
機能が少ないということは勉強する量が少ないということです。他のサービスと比較してドキュメントが圧倒的に分かりやすかったです。
面白いことに内部で SQLite というファイルデータベースを使用しており、本体はワンバイナリファイルで動いています。つまり1つのフォルダ内で環境構築が完結するんですね。
ただ個人開発プロジェクトであるため、開発が頓挫する恐れがあります。現在開発バージョンなので API の後方互換性も約束されていません。
It is a personal open source project with intentionally limited scope and developed entirely on volunteer basis.
まとめ
- Firebase: 有名
- Supabase: OSS なのに高機能
- Pocketbase: 軽くて簡単でしゅきぃ...
BaaS は IDaaS(認証) や DBaaS(DB) などさらに細分化されたサービスも提供されているそうです。さらにガチでモテるためにはそちらのキャッチアップになるでしょう。
