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への移行を進めていこうと思います。