Astroでポートフォリオサイトを構築した話
このポートフォリオサイトは、Astroという静的サイトジェネレーターで構築しています。
なぜAstroを選んだか
Astroを選んだ理由は以下の通りです:
1. パフォーマンス
Astroは「Zero JavaScript by default」というコンセプトで、不要なJavaScriptを一切送信しません。その結果、驚異的に高速なサイトが実現できます。
2. 柔軟性
React、Vue、Svelte、Solidなど、好きなUIフレームワークを混在して使えます。私のプロジェクトでは:
- Shakeeper: Next.js (React)
- milpon: SvelteKit
と異なるフレームワークを使っていますが、Astroならどちらのコンポーネントも統合できます。
3. 開発体験
- シンプルな
.astroファイル形式 - TypeScript完全サポート
- Content Collections による型安全なMarkdown管理
実装した機能
ファビコン生成システム
SVGファビコンから複数サイズのPNG、ICOを自動生成するスクリプトを実装しました:
// scripts/generate-favicons.js
import { Resvg } from '@resvg/resvg-js';
// ...サイズごとにPNGを生成
PWA対応
manifest.jsonとservice workerでPWA対応し、ホーム画面に追加できるようにしました。
Cloudflare Pages デプロイ
Wranglerを使ってCloudflare Pagesに自動デプロイ。カスタムドメイン reiblast.f5.si も設定済みです。
今後の予定
- ブログ機能(今これ!)
- ダークモード対応
- プロジェクトのスクリーンショット追加
- アクセシビリティ改善
まとめ
Astroは非常に強力で使いやすいフレームワークです。ポートフォリオサイトやブログを作りたい方には特におすすめです。
ぜひ試してみてください!