A modern, responsive portfolio website built with Astro and deployed on GitHub Pages. Features a clean, professional design with dark mode support and resume content managed through TypeScript data files.
- Static Site Generation: Optimized for GitHub Pages deployment
- Dark Mode: Manual toggle + OS preference fallback with FOUC prevention
- Responsive Design: Mobile-first approach with Tailwind CSS
- Dynamic Content: Resume content managed through TypeScript data files
- Quality Assurance: ESLint for code quality
- Framework: Astro
- Styling: Tailwind CSS v4 with Typography plugin
- Content: TypeScript data files (
src/data/) - Language: TypeScript
- Package Manager / Runtime: Bun
- Deployment: GitHub Pages (static output)
- Bun (required)
curl -fsSL https://bun.sh/install | bashgit clone https://github.com/HagaSpa/HagaSpa.github.io.git
cd HagaSpa.github.io
bun installbun run devOpen http://localhost:4321 to view the site.
bun run buildStatic files are generated in the dist directory.
bun run previewResume content is managed through TypeScript data files in src/data/ (ja.ts, en.ts, shared.ts).
- Styling: Modify Tailwind classes in components or
src/styles/global.css - Layout: Edit
src/layouts/Layout.astroandsrc/components/ - Content: Update data files in
src/data/ - Assets: Add files to
/public/
bun run dev- Start development serverbun run build- Build production version (static output todist/)bun run preview- Preview production buildbun run lint- Run ESLint
├── src/
│ ├── components/ # Astro components (SideNav, NavLinks, section components, icons)
│ ├── layouts/ # Layout components
│ ├── pages/ # Astro pages
│ ├── styles/ # Global CSS
│ └── data/ # TypeScript data files
├── public/ # Static assets
├── astro.config.mjs
└── package.json
This site is configured for automatic deployment to GitHub Pages. Push to the main branch to trigger deployment.
This project is open source and available under the MIT License.