A modern, fully configurable developer portfolio that adapts to your content. Built with vanilla JavaScript and designed for GitHub Pages with automatic setup, dynamic content loading, and intelligent README generation.
- Click "Use this template β "Create a new repository"
- Name your repository
yourusername.github.io
(replaceyourusername
with your actual GitHub username) - Wait for automatic setup - The template will automatically:
- Create personalized
config.json
with your GitHub username - Generate initial README.md with your GitHub stats
- Update LICENSE file with your name
- Remove template-specific files
- Prepare everything for customization
- Create personalized
- Customize your portfolio by editing
config.json
with your details - After editing
config.json
go to Actions β "Update README from Config" β click on "Run workflow" and again "Run workflow" - Check if GitHub Pages is enabled: Go to Settings β Pages β Deploy from branch β main
Wait for GitHub Pages deployment to complete and your portfolio would be live! π
- π€ Automatically initializes your portfolio when you use the template
- βοΈ Zero code changes required - everything configured through JSON
- ποΈ Feature Flags to enable/disable sections (about, projects, experience, skills, GitHub projects)
- π GitHub integration which automatically displays repositories with "featured" topic
- β‘ Performance optimized - fast loading with lazy images and efficient DOM updates
- ποΈ Modular Architecture with clean, maintainable codebase
- π± Fully responsive mobile-first design
- π Dark/light mode - smooth transitions with persistent preferences
- π Add 1 project or 100 projects - website adapts automatically
- π Project links - Add links to live demos, repositories, or project pages for each project
When you create a repository from this template:
- GitHub Actions automatically detects the new repository
- Checks if you named it correctly (
username.github.io
) - Creates personalized
config.json
with your GitHub username pre-filled - Generates a beautiful README.md with your GitHub stats
- Updates the LICENSE file with your name
- Removes all template-specific files you don't need
- Everything prepared for immediate GitHub Pages deployment β
βββ index.html # Main HTML file
βββ config.json # Your portfolio configuration
βββ .github/workflows/ # GitHub Actions for automation
β βββ template-setup.yml # Initial portfolio setup (run once)
β βββ template-setup.js # Setup script for template initialization
β βββ update-readme.yml # README updates from config
β βββ update-readme.js # README updates script
βββ css/ # Modular CSS files
β βββ main.css # Main stylesheet that imports all modules
β βββ base.css # CSS reset, variables, base styles
β βββ components.css # Shared component styles
β βββ theme.css # Theme switcher and dark mode
β βββ header.css # Header and social links
β βββ about.css # About section styles
β βββ skills.css # Skills section styles
β βββ experience.css # Experience section styles
β βββ projects.css # Projects and GitHub projects
β βββ animations.css # Keyframe animations
β βββ responsive.css # Mobile and tablet responsive styles
βββ js/ # Modular JavaScript files
β βββ main.js # Main application entry point
β βββ config-manager.js # Configuration loading
β βββ seo-manager.js # SEO meta tags management
β βββ theme-manager.js # Dark/light theme switching
β βββ loading-manager.js # Loading screen management
β βββ section-manager.js # Content sections rendering
β βββ header-manager.js # Header and social links
β βββ github-projects-manager.js # GitHub API integration
βββ assets/
βββ logos/ # Company logos (light and dark variants)
βββ projects/ # Project screenshots
All portfolio content is managed through config.json
. After the automated setup:
- Update personal information in the
header
andabout
sections - Add your experience in the
experience.jobs
array - Showcase your projects in the
projects.items
array - List your skills in the
skills.categories
array - Configure social links in the
social_links
array
{
"header": {
"greeting": "Your Name",
"tagline": "Your Professional Tagline"
},
"about": {
"paragraphs": [
"Your introduction paragraph",
"Additional details about your background"
]
},
"experience": {
"jobs": [
{
"company": "Company Name",
"role": "Your Role",
"date": "Start - End",
"responsibilities": ["Achievement 1", "Achievement 2"]
}
]
}
// ... more configuration options
}
- Add logos to
assets/logos/
folder - Use format:
Company_Logo.png
andCompany_Logo_White.png
(for dark mode) - Reference in config.json:
"logo": "assets/logos/Company_Logo.png"
- Add "featured" topic to repositories you want to showcase
- They'll automatically appear in your "Projects on GitHub" section
- No configuration needed - completely automated!
- Modify CSS custom properties in
css/base.css
- Colors, fonts, and spacing all centrally managed
- Dark/light mode variants automatically handled
- Your repository should be named
username.github.io
- Go to Settings β Pages
- Source: "Deploy from a branch"
- Branch: "main"
- Your portfolio will be live at
https://username.github.io
- Netlify: Connect your GitHub repository
- Vercel: Import your GitHub repository
- Custom hosting: Upload files to any web server
This template includes two powerful GitHub Actions:
- Triggers: Automatically when repository is created from template
- Function: Initializes your portfolio from the template
- Actions:
- Validates repository name format (
username.github.io
recommended) - Creates personalized config.json with your GitHub username
- Generates initial README.md with GitHub stats
- Updates LICENSE file with your name and current year
- Removes template-specific files (docs/, setup files, etc.)
- Commits everything ready for deployment
- Validates repository name format (
- Triggers: Manual workflow dispatch only
- Function: Regenerates README.md from your latest config when manually triggered
- Actions:
- Validates config.json format
- Generates beautiful README with your GitHub stats and info
- Commits updated README automatically
- Repository Naming: Use
username.github.io
for your main portfolio - Featured Projects: Add "featured" topic to 3-5 of your best repositories
- Regular Updates: Keep your
config.json
updated with latest experience - Logo Quality: Use high-resolution logos for professional appearance
- Content Length: Keep descriptions concise but informative
Want to improve this template?
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is open source and available under the MIT License.
Built with β€οΈ for the developer community