yuji

← 制作物一覧

ポートフォリオサイト

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 画像の自動生成