A lightweight, vanilla JavaScript portfolio template that's fully customizable through a single config file. Perfect for developers who want a clean, professional portfolio without dependencies.
- 🌗 Light/Dark mode toggle with persistent preference
- 📱 Fully responsive design for all devices
- ⚡ Zero dependencies - pure vanilla JavaScript
- 🎨 Easy customization through single config.js file
- 💼 Project showcase with category filtering
- 👥 Animated testimonials carousel
- 📊 Animated skills progress bars
- 📬 Contact form ready for your preferred email service
- 🔗 Integrated social media links
- 🎯 SEO-friendly structure
- Fork this repository
- Copy the example config file to create your personal config:
cp js/config.example.js js/config.js
- Edit
js/config.js
with your information - Go to Settings > Pages > Build and deployment
- Set Source to "Deploy from a branch" and select main
- Enable "Read and write permissions" in Settings > Actions > General
- Your portfolio is live at
yourusername.github.io
├── index.html # Main HTML structure ├── css/ │ └── style.css # Styles including responsive design ├── js/ │ ├── config.js # All your personal configuration │ └── main.js # Core functionality └── README.md
- Create free account at EmailJS.com
- Create an Email Service:
- Go to "Email Services" tab
- Add new service (Gmail, Outlook, or others)
- Create an Email Template:
- Go to "Email Templates" tab
- Create new template
- Use variables: {{name}}, {{email}}, {{message}}
- Get your keys:
- Public Key: Found in Account > API Keys
- Service ID: Found in Email Services tab
- Template ID: Found in Email Templates tab
- Update your config.js:
contactConfig: {
emailService: "emailjs",
emailjsConfig: {
serviceId: "your_service_id",
templateId: "your_template_id",
userId: "your_public_key"
}
}