個人的な感覚ですが、ここ最近はサーバサイドTypeScriptが実用で採用されるのが、そこまで珍しくなくなってる気がします。下記の記事にある通り、フロントと言語を合わせたいよねというのと、フレームワークがかなり整備されてきた、というのがあるかなと考えています。もちろんTypeScriptの型機能自体が、他のサーバサイドの言語と比べても劣ることが無くなってきてるというのもあると思います。
サーバサイドでJavaScriptを動かすとなるとNode.jsの基盤が、現時点でもファーストチョイスとなるでしょう。Node.js自体は十数年前に開発されて、当初は以下の記事にある通りやはり諸々課題が多いなという印象でした。
とは言え開発から十数年前経った今では、かなりバグも減ってきたと感じますし、ナレッジも色々出てくるようになりました。Node.jsについては、以下の記事にある通り適切に使えば大量のリクエストを捌くことが可能であり、パフォーマンスの点でも懸念は少ないかなと思います。(もちろんCPUリソースを食うような処理は、得意ではないですが・・)
実用としてはKARTEのサービスではNode.jsが使われていて、課題はありつつも運用実績がある点は大きいかなと思います。
では、サーバサイドTypeScriptではどういった実装になるかというのも、NestJSを中心に軽く紹介したいと思います。
まずはNestJSについてですが、TypeScriptのフレームワークとしてはファーストチョイスになるかなという感触です。もちろん、そんなに機能はいらんということであればexpressで全然良いと思いますが、フレームワークにある機能を積極的に利用したい場合はNestJSは悪くない選択と考えます。
TypeORMと組み合わせることで、CRUD周りはけっこう生産性高く実装できるかなという印象はあります。
認証周りも、以下にJWTを使った例がありますが、良さげな気はしますね。
もちろんNestJSは他にも機能がありますが、けっこう情報も出てきているかなと感じるので、開発に困るということが以前よりは少ないかなとは思います。