A modern blog and resume/portfolio site built with Vite and React, deployed to GitHub Pages.
🌐 Live Site: https://lab34.github.io/
- ⚡ Fast development with Vite
- ⚛️ React 18 with functional components
- 🎨 Clean, responsive design
- 🧭 Client-side routing with React Router
- 🚀 Automatic deployment to GitHub Pages via GitHub Actions
- 📱 Mobile-friendly navigation
lab34.github.io/
├── src/
│ ├── components/ # Reusable components (Navigation, etc.)
│ ├── pages/ # Page components (Home, Blog, Resume)
│ ├── App.jsx # Main app with routing
│ ├── App.css # App-specific styles
│ ├── index.css # Global styles
│ └── main.jsx # Entry point
├── public/ # Static assets
├── .github/workflows/ # GitHub Actions deployment
└── dist/ # Build output (generated)
- Node.js 20.19+ or 22.12+
- npm
- Clone the repository:
git clone https://github.com/lab34/lab34.github.io.git
cd lab34.github.io- Install dependencies:
npm install- Start development server:
npm run devThe site will be available at http://localhost:5173/
npm run dev- Start development server with hot reloadnpm run build- Build for production (output todist/)npm run preview- Preview production build locallynpm run lint- Run ESLint
The site automatically deploys to GitHub Pages when you push to the main branch.
- Go to your repository Settings → Pages
- Set Source to "GitHub Actions"
- Push to
mainbranch to trigger deployment
The GitHub Actions workflow (.github/workflows/deploy.yml) will:
- Build the Vite project
- Add
.nojekyllfile for proper routing - Deploy to GitHub Pages
Currently, blog posts are managed manually in src/pages/Blog.jsx. To add a new post:
- Edit
src/pages/Blog.jsx - Add your post content in the
blog-postssection - Commit and push to deploy
Future enhancement: Consider integrating markdown files or a CMS.
To update your resume/CV:
- Edit
src/pages/Resume.jsx - Update sections (About, Experience, Skills, etc.)
- Commit and push to deploy
Edit src/components/Navigation.jsx to:
- Change the brand name
- Add/remove menu items
- Modify navigation structure
- Global styles:
src/index.css - App-specific styles:
src/App.css - Component styles: Inline or create component-specific CSS files
- Build Tool: Vite 7.3.1
- Framework: React 18
- Routing: React Router v6
- Deployment: GitHub Pages via GitHub Actions
- Linting: ESLint with React configuration
MIT
For questions or issues, please open an issue on GitHub.