Let's be honest—you're busy building awesome projects, but updating your portfolio? That's always "on the list". When opportunity knocks (job applications, freelance gigs, or just showing off your work), you're stuck spending hours writing descriptions, grabbing screenshots, and manually updating everything. Sound familiar? 😅
This portfolio generator has your back! It automatically syncs with your GitHub repositories, pulls project details straight from your README files, and keeps everything fresh without you lifting a finger. You keep coding, and your portfolio stays updated. It's that simple.
Key Features:
- 🚀 Automatic GitHub Integration - Syncs your repos weekly and shows off both public and private projects (just add a token). Your portfolio grows as you code!
- 🎯 Smart README Parsing - Already wrote a great README? Perfect! This tool grabs descriptions, images, tech stacks, and abstracts from your existing files. Write once, use everywhere.
- 🎨 Configurable Page Styles - Pick from sleek, professionally designed layouts, and you can switch themes in seconds with one environment variable. Current supported styles are:
- Warm Minimalism (Default)
- Aesthetic
- More are coming soon!
For detailed deployment instructions, see the User Manual.
The quick overview:
- Initialize a git repository and copy example configuration files from the
configfolder - Modify
portfolio.jsonandprojects.jsonwith your information - Copy
docker-compose.ymlto your repository - Push to GitHub in a private repository
- On your deployment server: clone the repo, create
.envfile, set permissions, and rundocker-compose up -d
📖 Full Step-by-Step Guide: See docs/USER_MANUAL.md for complete deployment instructions.
Once your container is running locally or on a server, you’ll probably want others to see it.. 🌍 Here are a few simple options to put it on the internet:
-
1. Choose where to host it
- Any VPS / cloud provider that supports Docker will work (e.g., DigitalOcean, Hetzner, Linode, AWS, etc.), or you can run it on your self-hosted server (but you need to handle the networking yourself).
-
2. Attach a custom domain (optional but recommended)
- Buy a domain from any registrar.
- Use the registrar’s or provider’s DNS documentation to point your domain to your server (A/AAAA records).
-
3. Add HTTPS
- Use your provider’s recommended reverse proxy/load balancer solution (Nginx, Caddy, Traefik, Cloudflare, etc.).
- Follow their official guides to issue and renew HTTPS certificates (often via Let’s Encrypt).
For concrete examples, check your chosen provider’s documentation for:
- “Deploy Docker app” or “Host a containerized app”
- “Point a domain to a server”
- “Enable HTTPS with Let’s Encrypt”
We welcome contributions! Whether it's bug fixes, new features, or documentation improvements.
Quick Start for Contributors:
- Fork the repository
- Clone and install:
npm install - Make your changes
- Test locally:
npm run dev - Submit a Pull Request
📖 Full Contribution Guide: See docs/CONTRIBUTING.md
- User Manual - Step-by-step deployment and setup guide
- AWS EC2 + Namecheap Setup - Detailed guide for deploying on AWS EC2 with custom domain
- Configuration Guide - Complete configuration reference for portfolio and projects
- Contributing Guide - For developers who want to contribute
- Troubleshooting Guide - Solutions to common issues and errors
Encountering issues? Check out our Troubleshooting Guide for solutions to common problems including:
- Permission denied errors when syncing with GitHub
- Server Action errors and build cache issues
- And more...
- Next.js 15
- React 19
- TypeScript
- Framer Motion (animations)
- Material-UI
- Node.js
- GitHub REST API
- Docker & Docker Compose
- GitHub Actions
ISC License
For issues, questions, or contributions:
- Open an issue on GitHub
- Check existing issues for solutions
- Review the documentation
Built with ❤️ using Next.js, TypeScript, and Material-UI