ブログの技術スタックについて書こうと思います。
仕事でもwordpressやNext.jsで静的ブログ的なものは作ったことがないので手探りで行いました。
技術スタック
- Astro
- しずかなインターネットAPI
- cloudflare Workers
で構築しています。
Astro
Astroは触ったことがなく、Nuxt4で作成しようと考えたのですが、静的サイトだし、あんまりセキュリティ的に注意する部分も少ないのでAIに任せれば良いやーということでブログに適しているAstroを選びました。実装はほぼほぼClaudeCodeで行っています。
しずかなインターネットAPI
記事を管理する方法としては、CMSか直接markdownファイルを使うかで迷ったのですが、
しずかなインターネットの書き心地がとても良いのでブログ記事もこちらで書けたら良いなと思い、月300円でスポンサーになり、しずかなインターネットAPIをCMS代わりに利用する形にしました。
Cloudflare Workers
デプロイ先としてはCloudflareWorkersを利用しています。初めて利用したのですが、便利すぎてビックリしました。GitHubと連携させていて、mainブランチにpushが行われるとbuildが走るような設定にしてあります。開発自体はfeatブランチを切ってmainにPRを出すような形で一応進めています。
しずかなインターネットのAPIは投稿一覧取得APIと投稿詳細取得APIの2つしかなく、記事更新のタイミング等でビルドを実行できないため、
記事が更新されているかを確認する用のWorkerを用意して、cronで10分に1回しずかなインターネットから投稿一覧を取得し、前回の取得時のフィンガープリントと一致するかどうかを見て、変更が合った場合はAstroのworkersをdeploy hook urlを叩くようにしてあります。フィンガープリント用にはKVを利用しています。