PortfolioSync was born from a real problem I faced as a developer. Recently, I worked on several projects to expand my skillset and deepen my programming knowledge. After finishing them, I realized my portfolio was outdated — so I sat down to update it. It took me about three days. Not because I didn't know how. My portfolio is built with vanilla JS; even if I couldn't update it manually, I could just vibecode the changes. But somehow, it never felt urgent enough to prioritize. I'd finish a project, move on to the next thing, and updating my portfolio would quietly slip to the bottom of the list. Even when I eventually used AI to help, it still took more time than it should have. That's when it hit me — this wasn't a one-time thing. Every time I shipped something new, my portfolio fell behind. And I knew I wasn't the only developer with this problem. I'd had the concept for PortfolioSync in the back of my mind for a while, but I didn't know how to approach it technically. Then I saw the Google DeepMind Hackathon featuring the Gemini 3 API, and it immediately clicked — this was the perfect opportunity to bring the idea to life. What it does: PortfolioSync is an AI-powered tool that automatically keeps your portfolio website up to date. It connects to your GitHub account via OAuth, scans your repositories, and uses the Gemini 3 API to identify quality projects worth showcasing. From there, it analyzes your existing portfolio's format and style, generates a new entry that matches seamlessly, and delivers it as a pull request to your portfolio repo — so your portfolio stays current without you having to think about it. The entire workflow is hands-off: you connect your GitHub, point it at your portfolio, and PortfolioSync handles the rest — from evaluating which projects are portfolio-worthy to writing and formatting the entries for you. How we built it: We joined the hackathon with just 13 days until the deadline, so there was no time to waste. I started by creating a Product Requirements Document and a Functional Requirements Document, along with a basic README to outline the vision and architecture. I shared everything with my teammates, and their reaction confirmed we were onto something real — they'd experienced the exact same problem and said they'd genuinely use this tool. From there, we divided the work across the team and got building. The frontend is built with React and Vite styled with Tailwind CSS, and the backend runs on Node.js with Express and SQLite for data storage. GitHub OAuth handles authentication, and the Gemini 3 API powers the core AI workflow — a 6-step pipeline that handles snapshot comparison, README quality evaluation, project detail extraction, portfolio format analysis, entry generation, and pull request creation. Challenges we ran into: The biggest challenge was scoping the project within such a tight timeline. Early on, we planned to use Personal Access Tokens for GitHub integration, but we quickly realized that asking developers to manually generate and paste in a PAT could feel too technical for some — and others might have trust concerns handing over tokens with broad permissions. So we pivoted to GitHub OAuth instead, which is essentially the GUI version of a PAT. It gives us the exact permissions we need without putting that burden on the user, and it's a much smoother experience overall. On top of that, this was my first time using Express for the backend, so there was a learning curve I had to push through while keeping up with the hackathon pace. Accomplishments that we're proud of We're proud that we took a real, personal pain point and turned it into a working product in under two weeks. The fact that every teammate immediately related to the problem validated that we weren't just building for ourselves — this is something developers actually need. We're also proud of the AI workflow we designed; it doesn't just dump content onto your portfolio, it actually analyzes your existing style and format to generate entries that feel native to your site. And honestly, going from "I have an idea but don't know how to build it" to a functional demo in 13 days feels like an accomplishment in itself. What we learned: Building PortfolioSync reinforced that the best tools solve problems you've personally felt. It also taught us how to leverage comprehensive documentation upfront to keep a small team aligned and moving fast under pressure — especially when you're racing against a clock you started late on. On the technical side, we gained hands-on experience with the Gemini 3 API, GitHub OAuth flows, and building full-stack applications under real constraints. What's next for PortfolioSync: We want to take PortfolioSync beyond the hackathon. Next steps include supporting more portfolio formats and frameworks beyond vanilla JS, adding scheduled automatic scans so your portfolio updates itself on a recurring basis, and introducing a dashboard where developers can review and customize AI-generated entries before they're submitted as PRs. We're also exploring support for multiple portfolio platforms and the ability to sync across different hosting providers. The long-term vision is simple: you build great projects, and PortfolioSync makes sure the world sees them.
Built With
- express.js
- gemini-3-api
- github-oauth
- github-rest-api
- javascript
- node.js
- react
- sqlite
- tailwindcss
- vite
Log in or sign up for Devpost to join the conversation.