A cutting-edge portfolio that automatically syncs with your GitHub—featuring Three.js 3D animations, real-time analytics, and zero manual updates
This isn't just a static website—it's a self-updating, data-driven portfolio that showcases your work automatically:
🔄 100% Auto-Sync - GitHub Actions automatically updates your portfolio every 6 hours 📊 Real Analytics - 6 advanced analytics cards with live GitHub data 🎨 Zero Maintenance - Push code, portfolio updates itself—no manual editing 🎮 Stunning 3D - Three.js particle animations at 60fps 📱 Fully Responsive - Perfect on any device, optimized for performance ⚡ Lightning Fast - Optimized loading, smooth animations, instant updates
✅ GitHub Actions Auto-Sync - Automatically fetches and updates your repos ✅ Advanced Analytics Dashboard - 6 data-driven cards with real metrics ✅ Real Activity Heatmap - Shows your actual coding activity (last 30 days) ✅ Smart Language Detection - Auto-generates skills from your repos ✅ Dynamic Timeline - Development journey based on real repo dates ✅ Technology Badges - All languages displayed as colorful badges
Animated typing effect + Three.js 3D particle background + Real stats
| Card | What It Shows | Updates |
|---|---|---|
| GitHub Overview | Total repos, followers, years active | ✅ Auto |
| Language Distribution | Pie chart of your coding languages | ✅ Auto |
| Creation Timeline | Repository growth over time | ✅ Auto |
| Recent Activity | Last 30 days heatmap + stats | ✅ Auto |
| Total Stars | Stars earned across all repos | ✅ Auto |
| Technologies | All languages as colorful badges | ✅ Auto |
All your GitHub repos displayed as interactive cards with real data
Auto-generated from your repo languages with animated progress bars
Your coding journey from first repo to latest project
- A GitHub account
- At least one public repository
- 10 minutes of your time
-
Fork this repository
- Click the "Fork" button at the top of this page
-
Rename your fork
- Go to Settings → Repository name
- Change to:
{your-username}.github.io - Click "Rename"
-
Enable GitHub Actions
- Go to Actions tab in your forked repo
- Click "I understand my workflows, go ahead and enable them"
-
Set up workflow permissions
- Settings → Actions → General
- Under "Workflow permissions", select:
- ✅ "Read and write permissions"
- Click "Save"
-
Manually run the workflow (first time only)
- Go to Actions tab
- Click "Sync GitHub Repos"
- Click "Run workflow" → "Run workflow"
- Wait ~30 seconds for it to complete
-
Activate GitHub Pages
- Settings → Pages
- Source: "Deploy from a branch"
- Branch:
main| Folder:/ (root) - Click "Save"
-
Wait 2-3 minutes, then visit:
https://{your-username}.github.io
Edit index.html (only 3 things to change):
<!-- Line 6: Update page title -->
<title>Your Name - Your Title | Advanced Portfolio</title>
<!-- Line 7-8: Update meta description -->
<meta name="description" content="Your custom description here">
<!-- Line 127-130: Update bio text -->
<p class="hero-description">
Your custom bio here. Describe who you are and what you do.
</p>Edit app.js (only 1 thing to change):
// Line 13-19: Update typing animation texts
this.typingTexts = [
'Your Title 1',
'Your Title 2',
'Your Title 3',
'Your Title 4',
'Your Title 5'
];Edit index.html contact section (line 420):
<!-- Update your email -->
<p>your-email@example.com</p>That's it! Everything else updates automatically from your GitHub repos! 🎉
graph LR
A[GitHub Actions] -->|Every 6 hours| B[Fetch Your Repos]
B --> C[Generate repos.json]
C --> D[Calculate Stats]
D --> E[Update Portfolio]
E -->|Automatically| F[Live Website]
| Data | Source | Update Frequency |
|---|---|---|
| Repository count | GitHub API | Every 6 hours |
| Stars, forks, watchers | GitHub API | Every 6 hours |
| Languages & percentages | Repo analysis | Every 6 hours |
| Activity heatmap | Repo update dates | Every 6 hours |
| Skills section | Language stats | Every 6 hours |
| Project cards | Repo metadata | Every 6 hours |
| Timeline chart | Repo creation dates | Every 6 hours |
Want to update immediately? Run the workflow manually:
- Go to Actions tab
- Click "Sync GitHub Repos"
- Click "Run workflow" → "Run workflow"
- Wait 30 seconds, refresh your portfolio
Edit style.css (lines 23-31):
:root {
/* Change these colors to match your brand */
--accent-cyan: #00FFFF; /* Primary accent */
--accent-purple: #9D4EDD; /* Secondary accent */
--accent-green: #00FF41; /* Success/Active */
/* Or use your own colors */
--accent-cyan: #YOUR_COLOR;
--accent-purple: #YOUR_COLOR;
--accent-green: #YOUR_COLOR;
}Edit app.js particle count for better performance on older devices:
// Find this in setupThreeJS() method
const particleCount = window.innerWidth > 768 ? 1000 : 500;
// Reduce for older devices:
const particleCount = window.innerWidth > 768 ? 500 : 250;Edit .github/workflows/sync-repos.yml:
schedule:
- cron: '0 */6 * * *' # Every 6 hours
# Change to:
- cron: '0 */12 * * *' # Every 12 hours
- cron: '0 0 * * *' # Once daily at midnight
- cron: '0 9 * * 1' # Every Monday at 9amAll analytics cards are in index.html starting at line 176. Feel free to:
- Rearrange card order
- Add custom cards
- Modify card content
- Change card styling
- Auto-updates: Repository count, years active, Python %
- Customize: Bio text, typing animation texts
- Data source:
repos.jsonstats
- 6 Cards: All auto-update from
repos.json - Customize: Card titles, add/remove cards
- Data source: GitHub Actions workflow
- Auto-updates: All repository cards
- Customize: Filter buttons, search functionality
- Data source:
repos.jsonrepositories array
- Auto-updates: Programming languages from repos
- Customize: Add frameworks/tools manually
- Data source:
repos.jsonlanguageStats
- Auto-updates: No (manually curated for better storytelling)
- Customize: Edit timeline milestones in
app.js - Why manual: Tells your story better than raw dates
| Technology | Purpose | Why It's Awesome |
|---|---|---|
| Three.js | 3D particle background | Stunning visual impact, 60fps |
| Chart.js | Analytics charts | Beautiful data visualization |
| GSAP | Scroll animations | Smooth, professional animations |
| GitHub Actions | Auto-sync repos | Zero maintenance updates |
| Vanilla JS | Core functionality | No bloated frameworks, pure speed |
| CSS Grid/Flexbox | Responsive layout | Perfect on all devices |
| GitHub API | Data source | Real, up-to-date information |
✅ Frontend Developers - Showcase your design and animation skills ✅ Backend Developers - Impress with auto-sync and API integration ✅ Full-Stack Developers - Complete package with both visual appeal and functionality ✅ Students - Stand out in internship/job applications ✅ Freelancers - Attract high-value clients with professional presentation ✅ Open Source Maintainers - Professional hub for your projects
| Device | FPS | 3D Effects | Load Time |
|---|---|---|---|
| Desktop (High-end) | 60fps | Full quality | < 1s |
| Laptop (Mid-range) | 60fps | Full quality | < 1.5s |
| Tablet (iPad) | 45-60fps | Optimized | < 2s |
| Mobile (Modern) | 30-45fps | Reduced particles | < 2.5s |
| Mobile (Older) | 30fps | Minimal particles | < 3s |
Browser Support: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
❓ Portfolio not showing my repos
Check these steps:
- Verify
repos.jsonexists in your repo - Go to Actions → Check if workflow ran successfully
- If workflow failed, check Actions → Workflow permissions (should be "Read and write")
- Manually run the workflow: Actions → "Sync GitHub Repos" → "Run workflow"
❓ GitHub Actions workflow not running
Solutions:
- Enable Actions in your fork (Actions tab → Enable)
- Set workflow permissions: Settings → Actions → "Read and write permissions"
- Manually trigger: Actions → "Sync GitHub Repos" → "Run workflow"
❓ Stats showing 0 or incorrect data
Fixes:
- Wait for GitHub Actions to run (happens every 6 hours)
- Check
repos.jsonfile exists - Manually run workflow to update immediately
- Clear browser cache and hard refresh (Ctrl+Shift+R)
❓ Three.js animations laggy
Performance fixes:
- Reduce particle count in
app.js(line ~300) - Check browser supports WebGL (most modern browsers do)
- Close other browser tabs
- Update graphics drivers
❓ Want to use custom domain
Steps:
- Buy domain from registrar (Namecheap, Google Domains, etc.)
- Add
CNAMEfile to repo root with your domain - In Settings → Pages → Custom domain → Enter your domain
- Configure DNS at your registrar (see GitHub docs)
This portfolio is an excellent learning tool for:
- GitHub Actions - CI/CD automation, scheduled workflows
- Three.js - WebGL, particle systems, 3D graphics
- Chart.js - Data visualization, responsive charts
- REST APIs - GitHub API integration, data fetching
- Modern CSS - Grid, Flexbox, animations, custom properties
- Vanilla JavaScript - ES6+, async/await, classes, modules
- Performance - 60fps animations, optimization techniques
Found a bug? Have a feature idea? Contributions are welcome!
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
MIT License - Feel free to use this for personal or commercial projects!
What you CAN do:
- ✅ Use commercially
- ✅ Modify freely
- ✅ Distribute
- ✅ Use privately
What you MUST do:
- 📄 Include the original license
If this portfolio helped you:
- ⭐ Star this repo - Helps others discover it
- 🐛 Report issues - Help improve it for everyone
- 💡 Contribute - Add features or fix bugs
- 📢 Share - Tell other developers about it
- 📖 Documentation: You're reading it!
- 🐛 Bug Reports: Open an issue
- 💬 Questions: Start a discussion
- 📧 Contact: ragilmalik@protonmail.com
💡 Tip 1: Add repository topics on GitHub to enable better filtering 💡 Tip 2: Write good repo descriptions—they appear on your portfolio 💡 Tip 3: Star your best projects—sort by stars to highlight them 💡 Tip 4: Keep repos updated—activity heatmap shows recent work 💡 Tip 5: Use GitHub Actions logs to debug auto-sync issues
Get started in 10 minutes. No coding required for basic setup.
Built with 💙 by developers, for developers Powered by Three.js • GitHub Actions • Chart.js • GSAP
- ✅ GitHub Actions auto-sync every 6 hours
- ✅ 6 advanced analytics cards
- ✅ Real activity heatmap
- ✅ Auto-generated skills
- ✅ Technology badges
- ✅ Development timeline
- Basic GitHub API integration
- Three.js animations
- Project showcase
📊 This README is comprehensive. Scroll up to find what you need!
🎯 Next Steps:
- Fork this repo
- Enable GitHub Actions
- Customize your info
- Deploy to GitHub Pages
- Share your portfolio with the world!