昔、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に移行
今回の移行でやったことはざっくりこんな感じです。
| 役割 | Before | After |
|---|---|---|
| SSG | Jekyll | Astro |
| 記事 | Markdown | Markdown |
| ホスティング | S3 + CloudFront | Cloudflare |
| ドメイン | お名前.com | Cloudflare DNS |
| リポジトリ | GitHub | GitHub |
仕事で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にホスティングするまでの一連の流れをまとめました。
個人ブログとか、技術サイトとか、会社のコーポレートサイトとか、 「そんなに動的じゃなくていいけど、ちゃんとコードで管理したいサイト」 にちょうどいいです。
今回のこの記事は、自分でめちゃ雑に書いたメモ書きをチャッピーに修正してもらって投稿しました。 なので内容はちゃんと私のオリジナルです。
