メインコンテンツへスキップ
Astroでブログを構築する

Astroでブログを構築する

更新: 2025年11月6日

Astroでブログを構築するための利用ツールや詳細な手順、ぶつかった問題などを解決した際の記述

SEOとか諸々考えるならnoteとかに記事を書いてるほうがいいんだろうけど、独自ドメインも持ってるし、今は便利なサービスもAIもどんどん出てくるのでサクッと使ってみたい技術を使ってブログを構築するのがいいだろう。と思い立ちAstroでSSGするかぁ。となった。

コード自体はGitHubにPublicな状態で設置したのでなにか気になるものがあればご参考に。 こちらはBlog側で、記事作成等のAdmin機能は別リポジトリとなっております。 https://github.com/mogeta/muzigen.net_v2

技術選定

  • Astro 5.14.6
    • 前はAngularとScully を利用していたが色々と厳しさが出てきた
  • Firebase Hosting
    • デプロイ先
  • Firebase Firestore
    • 記事保存
  • Firebase Storage
    • 記事作成画面からの画像保存等に使用
  • Tailwind
    • おなじみのCSS周り
  • GitHub Action
    • デプロイ担当

やってること

デプロイ時にFirebaseから記事データを取得。 コードでいうとこの辺。 https://github.com/mogeta/muzigen.net_v2/blob/main/src/pages/blog/%5Bid%5D.astro

最初はmarkedを利用していたが、流石にこの辺もモダンなものに変換するか。ということで、次にremarkに移行。codeハイライト等を行っていたが、色々調査した結果、Astro本体が持つパース機能をそのまま流用できるということをAIから指摘され、そちらに移行した(昔のバージョンでは不可だったような気がした)

それがこの辺

//プロセッサーの取得
	const processor = await createMarkdownProcessor({
		syntaxHighlight: {
			type: 'shiki',
			excludeLangs: ['mermaid'],
		},
		rehypePlugins: [rehypeMermaid],
	});

//レンダリング処理
await processor.render(data.content)).code

AIに書かせた構造図等

Web3

バックエンド

コンテンツ

フロントエンド

ビルド&ツール

Vite

pnpm

PartyTown

Astro 5.x

React 19.x

TypeScript strict

Tailwind CSS v4

Astro Content Collections

remark/rehype

Shiki

Mermaid

Firebase Admin SDK

Firebase Client SDK

Firestore

Wagmi

RainbowKit

viem

まとめ

Blog用途であればこんなもんでしょ。ってのができたので引き続きリファクタリングとレイアウト改善に着手予定。 WordPressとか使うよりかは楽。