WordpressからAstroに引越し


WordpressからAstroに引越し

Hello, Astro!

WordPressからAstroへの引越した。正直言って、WordPressに不満があったわけではない。「動作が遅い!」とか「セキュリティーが!」とか、よく言われるデメリットも個人のブログ如きで感じることなんてなかった。しかし、逆に「WordPressじゃなきゃダメ」な理由も特に見当たらなかったのである。

私がウェブサイト制作を始めた頃は、20年以上前、HTMLで直接コンテンツを作成し、FTPで直接サーバーにアップロードする時代だった。誰が読むのかと思う日記なんてものをみんな書いて公開していた。「魔法のiらんど」なんてものが一世を風靡した。動的サイトと言えば、Perlを使って掲示板を作って自分のサイトに載せるのが一般的であった。「2ちゃんねる」の影響だろうか。その後「ブログ」なる言葉が生まれた。WebにLogする→WebLog→Blogである。と言ってもやってることはそれまでと同じで、日記や覚書、論評などをWEB上に記録していくのである。Movable typeやWordPressといったCMSが登場し一気に広まった。WEB上で記事を書いて、カテゴリー分けや、タグ付けなどをしておけば、あとは閲覧者が好きに情報を抽出できるユーザーフレンドリーなサイトが出来上がる。お気に入りのサイトのRSSフィードを登録していち早く情報をゲットできたり、コメントやトラックバックなどを利用して容易に周りの人とつながることができたことも流行った理由だろう。私もその波に乗ってWordpressを使い始め、もう20年以上もお世話になっている。

その後、Mixi、Facebook、Twitter、Instagram、YouTube、TikTokといったSNSが現れ、もはやブログは人とつながるツールではなく情報を発信するための一媒体に過ぎなくなった。記事に関するコメントや論評もSNSだ。記事にシェアボタンをつけておけばいい。むしろそのほうが記事も拡散されてよいといえる。こうなってくると、いかに検索されやすい記事を書くか、つまりSEO対策をいかにするかということが重要になったのだ。一昔前は、いかに被リンクを稼ぐかとか、いかにメタ情報をいれるかとかいう不毛なSEO戦争がなされてきたが、Google先生も優秀になり、最近では良質な記事を書くことがSEO対策になるという、やっと本来あるべき姿になってきたといえる。こうなってくるともはやサイトが動的か静的かということは重要ではない。良質な記事を書き、表示速度の早いサイトを構築する。それが重要なことなのだ。

その他諸々いろんな背景があり、時代はJamstackだ。静的サイトジェネレータ(SSG)はその一端で、私もJekyll、Pelican、Hugo、Gatsbyなど色々試してきた。Docusaurus、mdBook、MkDocsなど使って開発ドキュメントの作成も簡単にできる。GitHubにpushするだけでGitHub Actionsで自動でデプロイもできる。静的サイトを作るのも一昔前と違って非常にスマートだ。

長年続けてきた私個人のブログも、静的サイトに移行しようと何度か思ってみた。年1度くらい来る静的サイトジェネレータへの移行熱だが、上記の通りWordpressに特に不満もなかったし、わざわざデータベースの情報を抜き出してMarkdownで記事を作り直すということのほうが面倒で中々進まなかった。しかし、今回はなぜか思い切って進めてみようという気持ちに至った。溜め込んだ記事も古くなり今更価値のあるようなものもない、ここから再スタートで良いのではないかと思うようになったからだ。古い記事で必要なものは徐々に移行すれば良い。こんな気持に至ったのは、色んなストレスもあり心機一転何かを変えてみたかったのかもしれない。

最初はGatsbyを使ってブログを再構築していた。Gatsbyは静的サイトジェネレータでも人気だし、私自身Reactが好きだし。何と言ってもGatsbyって響きがなんかかっこいい。もっとも、静的サイトジェネレータの中では人気があるとはいえ、日本語の解説記事は多いわけではない。何度もつまづきながらも作り上げていった。GraphQLとも随分と仲良くなった。やっとサイトが完成し、記事をいくつか書いたら公開しようと思うくらいになってふと思った。

「React必要なくね?」

元々静的サイトジェネレータに移行する目的の一つは、その軽さだったはずである。シングルページアプリケーションで、かつ、サーバーとのやり取りがない分ページ遷移は早いと言えるが、React(Javascript)をバンバン使ったサイトは軽いとは言えないのでは?と思うようになった。阿部寛のHPのような軽量さとは程遠いと言える。とはいえ、実際のところは、現在のネット回線の速度やPCのスペックを考えれば何ら問題はない。ただ一つ気になるのは開発時のビルドの遅さだ。はっきり言って遅すぎる。とはいえ、これもGitHub Actionで自動化することを考えたら問題にはならない。運用時にはGitHubにPushしてほっておけばいい。寝て起きたら更新されている。

問題はないものの、考えれば考えるほどやはり個人ブログにReactは必要ないのだ。このままGatsbyで行くかどうしようか悶々としているとAstroに出会った。Gatsbyの解説記事を読み漁っているときにちょくちょく目にはしていたが、その時はあまり気には止めていなかった。しかし、今となってはAstroは求めていた静的サイトジェネレータどんぴしゃなのである。AstroはReactやVueなどモダンなフレームワークを利用してサイトを作成できるのだが、ビルド時にはそれらを排除しHTMLとCSSでサイトを構築し直してくれるのである。そのため、非常に軽い静的サイトの構築が可能だ。もちろんReactを残してほしい場合はclient:loadと明示すればコンポーネント単位で残すこともできる。

Gatsbyからの移行も容易である。.astroというフォーマットはほぼ.jsxだし、mdxで記事も書けるので自由度も高い。GraphQLは使えないがコンテンツコレクションで同様の機能を実現できる。どちらででも作ってみて思うが、学習コストの面ではGatsbyよりも遥かに容易だと感じる。

というわけで、いい感じにサイトも作成できたのでAstroで運用していこうと思う。静的サイトから動的サイト、そして再び静的サイトへ。歴史は繰り返される。


Author

me

入谷 史人

Scientist (Ph.D.), Programer, Web Developer, Guitarist, Photographer

more...