Remix.runで作り始めたこのBlogですが、Remixのフルスタックな構成だと、段々と自分が何を書いているのか分からなくなって、好きに書けるはずのコード修正がどんどん地獄味を増して、最近だとIDE開くだけで嫌な気持ちになり、Switchコントローラを手に取ったり、Steamで適当なゲームを起動するようになり、いよいよ辛くなってきた。
Remix自体はすげー良いプロダクトでした。UIフレームワークやスタイルシートの取り扱いがあまり宜しくないことはあったけれど、それに勝るメリットが多々あった。<Outlet>
で気持ちよく書けるレイアウト、SSRデフォルトの設計思想、高速なホットリロード、フロントとバックエンド混ぜ書きできること自体も、クエリの結果をサクッとブラウザに表示させたいならかなり良い。
ただ、やっぱりフロントとバックエンドが混ぜ書きみたいになると、
- モジュールのファイルをどのディレクトリに配置するべきか異様に悩む
- どうやってもバックエンドとフロントエンドの都合が近接してくる
- DBのエンティティの型がフロントエンドに貫通してくる
- 適当な型に変換して渡すのも面倒
- それを変換したりフィルタしたりして、ReactNodeを返す関数が爆誕したりする
- Nodeとブラウザで存在しないオブジェクトを参照しようとしてエラー出るたびにイライラする
などのことがあり「やっぱやり慣れたフロントエンド + バックエンド構成がいいな」「やるなら傷が深くなる前にやった方がいいな」ということで、
- Next.js
- 使い慣れたNest.js
- 普段はNodeでバックエンドの仕事をしています
でやり直すことにしました。本当はNext.jsのLayout RFCが実装された後にしたかったんですが、決断は早い方がいいので…。
今動いているコードですが、GitHubのこのリポジトリに供養として残しておきます。