Logo Blog | nknighta

AstroJSに入門する

AstroJSに入門する eyecatch
8/28/2025

Astroで作ったブログです

https://blog.nknighta.me/

なぜAstroを触ろうと思ったのか?

普段からいろんなJSやTSのフレームワークを試しているのですが、いつも見ているTakuya MatsuyamaさんがYoutube上でAstroを使ってサイトを制作する動画をうpしてたのと、ウマ娘のキャンペーンでBoC'zの公式サイトがAstroで開発されていて改めて勉強がてらBlogを作ってみました。

Astroの方針としては、

"これに対して、モダンなウェブフレームワークの多くは、ウェブアプリケーションを作成するために設計されています。これらのフレームワークは、ブラウザ上におけるより複雑な、アプリケーションのような体験を作成するのに適しています。ログインした管理者向けのダッシュボード、受信トレイ、ソーシャルネットワーク、Todoリスト、さらにはFigmaPingのようなネイティブに近いアプリケーションなどがその例です。しかし、その複雑さゆえに、コンテンツを配信する際に優れたパフォーマンスを発揮するために苦労するかもしれません。

Astroは、その初期から静的サイトジェネレータとしてコンテンツに焦点を当ててきたため、コンテンツと読者を尊重しながら、パフォーマンスとパワーに優れた動的なウェブアプリケーションへと適切にスケールアップできます。Astroは、コンテンツにフォーカスするという独自の立場から、トレードオフを考慮しつつ、アプリケーションにフォーカスしたウェブフレームワークでは実装する意味がないようなパフォーマンス向上に取り組んでいます。"

だそうです。

ドキュメント上でコンテンツ駆動ベースと書いてあったので、個人的にはやっぱブログに最適なのかなと。

今回使用した技術は

ブログのリポジトリ

https://github.com/nk4dev/astro-blog

ホスティング・デプロイ設定

事前にリポジトリを作成しMicroCMSのAPIキーを設定しておくとあとあと楽です。完成してから設定でもいいのですが、ビルド時にエラーを吐きやすくなります。

APIキーはリポジトリのSettings > secrets and variables > Actionsから設定できます。

// @ts-check
import { defineConfig } from 'astro/config';

// https://astro.build/config
export default defineConfig({
    site: 'https://blog.nknighta.me',
    base: '/',
});

GitHub Pages用のせっていはこれだけでした。Nextjsに比べると圧倒的に楽ですね。Nextだと画像の最適化機能が使えなかったりしましたが、Astroであれば特定の機能が使えないということは今のところないのでうれしいポイントです。

今回は自分のドメインを用いてブログを公開するのでbaseには"/"のみ設定していますが、もし<GITHUB_USER_NAME>.github.ioの形式で公開する場合にはリポジトリ名を入れないと404エラーを吐きまくります。

またデプロイはGitHub Actionを使います。これも公式ドキュメントに書いてあります。ありがたい

https://docs.astro.build/ja/guides/deploy/github/#github-actionの設定

deploy.ymlはそのままコピペで.github/workflows/deploy.ymlファイルに記載すれば大丈夫です。

あとはpushしてビルドが完了するのを待つだけです。

引用・参考サイト

Takuyaさんのサイト

https://uses.craftz.dog/

Astrojs docs (英語版)

https://astro.build/

BoC'z (Pixiv百科事典)

https://dic.pixiv.net/a/BoC%27z

※BoC'z公式サイトは公開停止してました...(アクセスするとホームページにリダイレクトする)

Youtube動画