A modern, responsive portfolio website built with Next.js, React, and Tailwind CSS, deployed on GitHub Pages.
- ✨ Modern, responsive design for all device sizes
- 🌙 Dark/light mode toggle with system preference detection
- 🎨 Smooth animations and transitions using Framer Motion
- 📱 Mobile-friendly navigation with hamburger menu
- 📝 Blog section with category filtering
- 💼 Projects showcase with search and filtering
- 📧 Contact form with validation
- 🚀 Automated deployment via GitHub Actions
- Next.js 15 - React framework with server-side rendering and static site generation
- React 19 - UI library for building component-based interfaces
- TypeScript - Static typing for JavaScript to improve developer experience
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- next-themes - Theme management for Next.js (dark/light mode)
- framer-motion - Animation library for React
- react-icons - Icon library with popular icon sets
- Clone the repository:
git clone https://github.com/SpliceReborn/SpliceReborn.github.io.git
cd SpliceReborn.github.io- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:3000 in your browser.
.
├── .github/ # GitHub Actions workflow files
├── public/ # Static assets (images, CV, etc.)
├── src/ # Source code
│ ├── app/ # App Router pages and layouts
│ │ ├── about/ # About page
│ │ ├── blog/ # Blog page
│ │ ├── contact/ # Contact page
│ │ ├── projects/ # Projects page
│ │ ├── globals.css # Global CSS
│ │ ├── layout.tsx # Root layout (shared across all pages)
│ │ └── page.tsx # Home page
│ └── components/ # Reusable UI components
│ ├── header.tsx # Site header/navigation
│ ├── footer.tsx # Site footer
│ └── theme-provider.tsx # Theme context provider
├── next.config.mjs # Next.js configuration
├── package.json # Dependencies and scripts
├── tailwind.config.ts # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
This site is deployed on GitHub Pages using GitHub Actions. The deployment process is triggered automatically when pushing to the master branch:
- GitHub Actions checks out the code
- Sets up Node.js environment
- Installs dependencies
- Builds the static site with Next.js export
- Creates a
.nojekyllfile to bypass Jekyll processing - Deploys the build output to the GitHub Pages
You can also deploy manually with:
npm run deployThe site is accessible at:
- GitHub Pages: https://splicereborn.github.io/
- Custom Domain: https://darrenseet.com/
- Content not updating on GitHub Pages: Add cache control meta tags in the HTML head, and hard refresh browsers with Ctrl+F5 (or Cmd+Shift+R on Mac)
- React component errors: Make sure to use proper JSX formatting and escape apostrophes with
' - Build failures: Test builds locally before pushing with
npm run buildto catch errors early
- Add a Markdown-based blog system with MDX
- Create detailed project case studies
- Implement a functional contact form with server-side handling
- Add analytics for visitor tracking
- Further optimize loading performance
