Jekyllおじさん、Astroに移行しました

昔、Jekyllでサイトを作ったときは本当に感動しました。 「Markdown書いたらサイトになるとか、なにこれ最高じゃん」と思って、ブログも全部Jekyllで作りました。

この記事 のテンションの高さが懐かしいw

当時は、

  • Gitで管理できる
  • Markdownで書ける
  • github pagesで簡単に無料でホスティングできる
  • 静的サイトだから速い
  • なんかエンジニアっぽい

この辺が全部ちょうどよくて、「ブログ=Jekyll」みたいな時期が自分の中にありました。

でも、気づいたらこうなってました。

  • Ruby関連のメンテがだるい
  • gem の依存でたまにビルドこける
  • そもそもgemが終了する
  • テーマのカスタマイズが地味にしんどい
  • ちょっとした修正でも「Jekyllの流儀」に従わないといけない
  • そもそも最近あまり更新されてない

完全に技術的負債になってました。

そのたびに思ってたのがこれです。

もう Medium でよくない?

正直、文章を書くという目的だけなら Medium が一番楽です。 スマホで書けるし、ホスティングもSEOも気にしなくていいし、画像も埋め込みも楽。(Medium勧誘広告うざいけどw)

でも、どうしてもやめられないんですよね。

自分でキーボード叩いて、ビルドして、サイトができるあの感じ。

ブログを書きたいのか、サイトを作りたいのか、もはや目的が迷走してますけど、たぶんやっぱり作る方が好きなんだと思います。

というわけで、懲りずにまた自分で組み直しました。 今回は Astro です。


なぜAstroにしたのか

静的サイトジェネレーターはいろいろあります。

  • Jekyll
  • Hugo
  • Gatsby
  • Next.js
  • SvelteKit
  • Astro

この中でAstroを選んだ理由はかなりシンプルで、

「Markdownで記事を書けて、かつフロントエンドも普通に書ける」から。

Jekyllは「ブログツール」寄り、 Next.jsやSvelteKitは「アプリケーションフレームワーク」寄り、 Astroはそのちょうど中間にいる感じです。

  • 記事 → Markdown
  • レイアウト → コンポーネント
  • 必要なところだけReact/Svelte/Vueが使える
  • デフォルトでほぼ静的HTMLになるので速い
  • ビルドも速い
  • Nodeで完結(Rubyいらない)

個人ブログとか、技術サイトとか、会社のコーポレートサイトとか、 「そんなに動的じゃなくていいけど、ちゃんとコードで管理したいサイト」 にめちゃくちゃちょうどいいです。


構成(Jekyll → Astro) ついでにcloudflare pagesに移行

今回の移行でやったことはざっくりこんな感じです。

役割BeforeAfter
SSGJekyllAstro
記事MarkdownMarkdown
ホスティングS3 + CloudFrontCloudflare
ドメインお名前.comCloudflare DNS
リポジトリGitHubGitHub

仕事でawsばっかりなので、盲目的にaws s3 cloud front 使ってましたが、 これを機にcloudflareと浮気してみたのですが、

cloudflare めちゃいいじゃん っていうのが率直な感想です。

aws は自分でバケット設定したりcloudfront でなんでもありだったり、確かに柔軟ではあるのですが、 cloudflare はデフォルトで安全で、設定がシンプルで、しかも無料で十分な機能が揃っているので、 個人で静的サイト吐き出して遊ぶには十分です。


ちょいハマった?ところ

「cloudflare で static サイト置けるらしい」くらいの認識で始めたので、 正直 cloudflare サービス名の概念に慣れるのに苦戦しました。

今回は static site なので、ビルド済みのアセットを置いてcdnに載せればいいだけという認識でしたが、 メニューが Worker & Pages ってなっていて、aws だとs3 と lambda のことになるので、なんだこりゃ?ってなってました。

s3 と cloudfront function なんだなってことで交通整理してます。


まとめ

というわけで、JekyllからAstroに移行して、cloudflare pagesにホスティングするまでの一連の流れをまとめました。

個人ブログとか、技術サイトとか、会社のコーポレートサイトとか、 「そんなに動的じゃなくていいけど、ちゃんとコードで管理したいサイト」 にちょうどいいです。


今回のこの記事は、自分でめちゃ雑に書いたメモ書きをチャッピーに修正してもらって投稿しました。 なので内容はちゃんと私のオリジナルです。