https://nullstack.app/

同じコンポーネントでブラウザとNode.jsで動くコードを扱うフルスタックフレームワーク。 .njsという拡張子でライフサイクルメソッドとJSXを使ったコンポーネントを書くことで、SSRやHydrateなどを行う。 サーバで動くコードはstatic asyncで書き、インスタントメソッドはブラウザ向けの処理となり、contextオブジェクトで値をやり取りする。 ビルドするとブラウザとサーバのコードをそれぞれbundleしたファイルを出力する。