ポートフォリオサイト
Astro と Cloudflare Workers で構築した、このサイト自体。記事と制作物を Markdown で管理している。
- 制作時期
- 体制
- 個人開発
- 使用技術
-
- Astro
- TypeScript
- Cloudflare Workers
- GitHub Actions
つくったもの
制作物と技術記事をまとめて置いておける場所が欲しかったので、自分でつくりました。今ご覧になっているサイトそのものです。
技術選定の理由
Astro を選んだのは、記事と制作物という「ほぼ静的なコンテンツ」を扱うのに、クライアント側の JavaScript をほとんど送らずに済むからです。記事一覧のタグ絞り込みだけは操作が必要なので、そこにだけ小さなスクリプトを置いています。
Cloudflare Workers にデプロイしているのは、静的アセットの配信が速く、無料枠で運用を続けられるためです。バックエンドは持たず、コンテンツはすべてリポジトリ内の Markdown で管理しています。記事を書いて push すれば、そのまま公開されます。
工夫したところ
- 記事のタグ絞り込みは、URL の
?tag=に状態を持たせて、絞り込んだ状態のリンクを共有できるようにしました。 - 制作物・記事ともに frontmatter を Zod でスキーマ検証しているので、必須項目の書き忘れはビルド時に落ちます。
- main への push で GitHub Actions がビルドとデプロイを行います。手元から手動でデプロイすることはありません。
これから
- 記事の全文検索
- OGP 画像の自動生成