reoring

ポートフォリオとブログをAstroで同居させる理由

個人の実績、技術発信、長期運用をひとつの静的サイトにまとめるために、Astroを選んだ理由。

個人のポートフォリオは、単に経歴を並べるだけの場所ではない。何を作ってきたか、どのような判断基準で技術を選ぶか、どの領域に責任を持てるかを、継続的に更新できる形で置いておく場所である。

そのため、このサイトではポートフォリオとブログを分けず、同じAstroプロジェクトの中に置いている。

ポートフォリオは固定ページ、ブログは更新履歴

トップページには、経歴、実績、プロダクト、OSS、登壇・執筆のような比較的変わりにくい情報を置く。一方で、ブログにはその時点で考えていること、技術選定の理由、開発現場で得た知見を書いていく。

この2つは別物ではない。実績は過去の結果であり、ブログは現在の判断基準である。両方が同じ場所にあることで、読む人は「何をしてきた人か」だけでなく「今どう考えている人か」まで確認できる。

Astroを選んだ理由

この用途では、ページのほとんどが静的コンテンツである。初期表示を速くし、余計なJavaScriptを送らず、Markdownで記事を書けることが重要だ。

Astroはこの条件に合っている。

  • トップページや記事ページを静的HTMLとして生成できる
  • Markdownで記事を書き、frontmatterでメタデータを管理できる
  • RSS、sitemap、タグページをビルド時に生成できる
  • 必要になった箇所だけ後からインタラクティブなUIを足せる

最初から複雑なCMSやフルスタックフレームワークを入れるより、今必要な構成を小さく保てる。

記事の管理方針

記事は src/content/blog/ にMarkdownで置く。frontmatterには、タイトル、説明、公開日、タグ、draft状態を持たせる。

---
title: "記事タイトル"
description: "記事一覧とSEOで使う説明文"
pubDate: 2026-06-28
tags: ["Software Engineering"]
draft: false
---

draft: true にした記事は、一覧、記事詳細、RSSから除外する。公開前の記事を同じリポジトリに置けるため、下書きと公開記事を分けて管理しやすくなる。

長期運用で大事なこと

個人サイトは、凝った仕組みよりも更新できることのほうが重要である。書くたびにCMSの管理画面へ入る、画像最適化の手順を思い出す、ビルドの仕組みが壊れる、といった摩擦が増えると続かない。

このサイトでは、まずはMarkdownを書いてpushすれば公開できる構成にしている。必要になったら検索、シリーズ記事、OGP画像生成、外部CMS連携を足せばよい。最初から全部を持たないことも、設計判断のひとつである。