Astroをはじめたけど、やめました
以前から「ブログを自分で作りたい」という気持ちがあり、Astro + MicroCMSの構成を試してみました。
ただ、使っていくうちにちょっと合わないなと感じる部分が出てきて、結局やめることにしました。この記事はその話です。
Astroとは
AstroはコンテンツサイトやブログにフォーカスしたWebフレームワークです。
デフォルトでJavaScriptの配信量が少なく、静的サイトの生成が得意です。
ReactやVueなど他のフレームワークのコンポーネントも組み合わせて使えるのが特徴で、「Islands Architecture」という考え方を採用しています。
microCMSとは
microCMSは日本製のヘッドレスCMSです。
管理画面から記事を作成・編集でき、APIを通じてコンテンツを取得する仕組みになっています。
WordPressのようにサーバー側でHTMLを生成するのではなく、フロントエンドのフレームワークと自由に組み合わせられるのが特徴です。
日本語のドキュメントが充実していて、個人開発でも使いやすいサービスです。
なぜAstroを選んだか
ブログを作るにあたって、最初にAstroを選んだのはシンプルな理由です。
「ブログに特化したフレームワーク」として名前をよく見かけていたこと、
そしてフロントエンドエンジニアとして新しいツールを触ってみたかったというのが正直なところです。
使ってみて感じたこと
実際に使ってみると、セットアップはスムーズで、ドキュメントも充実していました。
ただ、気になったのが「記事を更新するたびにビルドが必要」という点です。
AstroはデフォルトがSSG(静的サイト生成)のため、記事を公開・更新するたびにサイト全体をビルドし直す必要があります。
Webhookで自動ビルドは設定していたものの、それでもどこか不便さを感じていました。
SSRモードに切り替えれば解決できますが、それならはじめからNext.jsで組んだ方が自分には馴染みがあってシンプルだと感じました。
Next.jsに移行することにした
そこで、次の構成を考え始めました。
普段から使い慣れているNext.jsなら、ISR(増分静的再生成)やOn-demand Revalidationを使うことで、ビルドなしで記事を自動反映できます。
ブログ運用としてはかなり快適になりそうです。
まとめ
Astro自体は素直に使えて、セットアップもスムーズでした。
ただ、一番のネックはビルド運用です。記事を公開・更新するたびにビルドが走るため、実際に記事が反映されるまでに時間がかかります。
「ちょっと修正したい」という場面でもビルド待ちが発生するのは、思ったより気になりました。
次回は実際にNext.jsへの移行を進めていこうと思います。