技術ブログ改め、Qiitaの下書き

ブログをAstroベースに変更した

ちょっとブログを放置しすぎていたので、更新を兼ねてリニューアルしました。 というのを放置していたので、やっと記事化しました。

使用技術

  • Next.js -> Astro
  • MUI -> molcss(自作 CSS-in-JS)

上記の通り、変更しました。

Astro は、MPA の静的サイトジェネレーターです。動的要素の少ないブログでは、SPA にこだわる必要がないと判断し採用しました。 Astro といえばアイランドアーキテクチャが特徴ですが、クライアント側UIライブラリを使用しなかったので今回はその恩恵はありません。ですが、JS エコシステムに乗っかるために採用しました。自作のゼロランタイム CSS-in-JS を使用し、最小限のクライアント JS 、最小限の CSS となっているのではないでしょうか。

その他、検討した候補について

まとめておきます。

候補1. Next.js (app ディレクトリ)

リニューアル前が Next.js (page ディレクトリ) だったので。 page ディレクトリのダイナミックルーティングでは、記事データをコンポーネントに渡す際、json形式形式である必要がありました。これではReactコンポーネントを渡すことはできず、Markdownに装飾を行う場合は素のCSSを使用するか何かしら別の工夫をする必要がありました(リニューアル前は自作ライブラリdom-parser-reactを作って対応していました)。しかし、app ディレクトリでは記事データをMDXのサーバーサイドコンポーネントとして扱うことで、Reactの一部として扱うことができます。

とはいえ、動的要素の少ないこのブログにReactはパワフル(多機能)すぎるなと思い、却下しました。

候補2. vite-ssr-plugin (現 Vike) + 自作UIライブラリ

Vite でSSR/SSGを扱う際のプラグイン、vite-ssr-plugin を使用するパターン。特定のUIフレームワークへの依存はなく、自分でつなぎ込みを書くのが特徴(有名ライブラリは公式サンプルあり)。久々に確認したら、プラグイン名が Vike に変わっていました。 単にReactだったらNext.jsで良いので、自作UIライブラリの採用を想定…していたのですが、その自作UIライブラリの作成が難航したため候補から外れました。 拙作のfiberworksは動く形にはなっていますが、メイン処理がWeb Workerのため vite-ssr-plugin では動かず断念。

いつかチャレンジしたい。