My Vibe Stack
Vibe Stack とはつまり Hobby Stack のことで、私用小物アプリをホストする要素技術の意。最近はしょーもない自分専用実用品を一瞬で作れるようになったので必要性が増した。下手なスタックを選ぶと Ops が重荷になってしまう。
で、わたくし Vibe Stack は Cloud Run + Firestore + TS Server(Hono) + TS Web (Vanilla React) で行くことにしました。
ここ十年くらいは Cloud Run + Firestore + Python (Flask) + oauth-proxy + Vanilla JS だった。何がいいかというと別に良くはないが個人の都合による:
- Cloud Run = Pay as you go なので個人アプリだとほぼタダ.
- Firestore = 同じく Pas as you go.
- Python + Flask = ウェブ素人に優しい。
- oauth-proxy: 素人なのでログイン画面すら作れないんだよ!!
- Vanilla JS: 素人なので React とかわかんねーんだよ! だいたい plain HTML で足りてますからッ
という状態だったのが、エーアイの力により以下のようになった:
- TS (Hono): なんかいい具合に書いてくれる。ログイン画面も作ってくれる。Firestore も SDK で普通に使える。
- TS (Vanilla React): なんかいい具合に同上。SSR とか必要ないのとエーアイ頼みでもなお難しすぎるので Next.js はパス。
- TS は普通に JS よりいいが、以前はビルド環境とかを作るのが無理だった。今はお任せできる。言語としては static-typed python より 10x マシ。
大きな不満は Firestore で、できれば Postgres 的な SQL を書ける RDB がいいなーと思っているのだが、GCP には pay-as-you-go で安心して使える RDB がないのだった。AWS の Aurora DSQL が羨ましい。Spanner でも AlloyDB でもいいのでがんばって追従して scale-to-zero 課金のサービス作ってくださいたのむ。Cloud Run + SQLite のハックも何種類か試したが、いまいち心許せるアプローチに出会えず諦めた。
Firestore, ロックインなのはイヤだけど、単一プロジェクト内に複数データベースをつくる機能が三年くらい前に百年の時を経て実装され、私用零細アプリ乱立用途ではかなり使えるものになった。SQL ないのは、いいです。諦めます。(いつかたのむ!)