Credits to Pedro Machado for the repo provided to jumpstart my own portfolio with additonal/improved functionality
A modern portfolio website using React, TailwindCSS, Vite, and Lucide Icons. From dark mode support to responsive animations, pagination, intereactive projects and skills sections and configured to be fully operational on githubpages
- React β Component-based UI development
- Redux Toolkit - Simplified and efficient state management for React
- Vite β Lightning-fast build tool
- TailwindCSS β Utility-first CSS for styling
- Lucide Icons β Clean and beautiful icon pack
- Radix UI β Accessible component primitives
- GitHub & Gh-Pages β Deployment
-
π Light/Dark Mode Toggle Save theme preference in local storage with beautiful transitions
-
π« Animated Backgrounds Stars, meteors, scroll effects, and glowing UI elements
-
π± Responsive Navigation Desktop and mobile menus with glassmorphism
-
π¨βπ» Hero & About Sections Showcase who you are with smooth intro animations and buttons
-
π Skills Grid Filterable star ratings and categories with animated width
-
πΌοΈ Paginated Projects Showcase Display screenshots, tech stacks, and GitHub/demo links
-
π― Skill-Based Project Filtering Select a skill to dynamically filter related projects
-
π© Contact Section Social icons + responsive and functional contact form using EmailJS with toast notifications
-
βοΈ One-Click Deployment Easily deploy site on github page using workflow.yml
git clone https://github.com/yourusername/portfolio.git
cd portfolio
npm install
npm run devYour app will be available at: http://localhost:5173
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
β
1. Set the homepage in package.json
"homepage": "https://<your-username>.github.io/<your-repo-name>"
Replace your-username and your-repo-name with your actual GitHub username and repository name.
β 2. Push your code to GitHub
Make sure your latest code is pushed to the main (or master) branch of your GitHub repository.
β 3. Create GitHub Actions workflow
Automatically build and deploy to your github-page when you push commits to the main branch.
Create a new file at .github/workflows/workflow.yml in your project directory, or ensure the one in this repo is present on the same path
`
β 4. Configure your router
<BrowserRouter basename="/<your-repo-name>">β 5. Enable GitHub Pages
- Go to your repository on GitHub
- Click Settings > Pages
- Under Build and deployment:
- Source: Deploy from a branch
- Branch: gh-pages
- Folder: / (root)
- Click Save
β 6. Enable Form to send mail messages
- Go to EmailJS.com
- Create an account for email services and obtain your
service_id,template_idandpublic_key - The credentials should be stored safely in
.envwithin your project root and also added to yourrepository secretsunderactionsinSecrets and Variablessetting. Your.envshould look like:
VITE_EMAILJS_SERVICE_ID=your_service_id
VITE_EMAILJS_TEMPLATE_ID=your_template_id
VITE_EMAILJS_USER_ID=your_public_key- For more on setting up your EmailJS dashbaord, visit: EmailJS Doc
β
7. Done π
Your site will automatically be built and deployed to gh-page every time you push changes to the main branch. It will be live at:
https://<your-username>.github.io/<your-repo-name>






