This is a submission for the New Year, New You Portfolio Challenge Presented by Google AI
About Me
Hi! I’m Nansel, a builder, designer, and marketer passionate about bridging the gap between raw talent and professional presentation.
For the New Year, New You Portfolio Challenge, I didn't just want to build a static page. I realized that the hardest part of updating a portfolio isn't the code it's writing about yourself.
Most developers struggle to write confident bios or explain their project impact clearly and even worst portfolios are perceived and accepted as a dev only requirement while other professionally skilled individuals who are not code skilled suffer to present their work beyond social media, this hinders them from properly showcasing their experience and skills to land better jobs and freelancing gigs
So, I built Workfolio: A full-stack SaaS platform that doesn't just host your work—it uses Google Gemini AI to act as your personal career coach, rewriting your content to be recruiter-ready in seconds.
Portfolio
Below is my live system, fully Dockerized and deployed on Google Cloud Run:
A view of my put to get portfolio on Workfolio:
If you're reading please try it for yourself and lemme what you thing :
How to Step-by-step
- On the landing page click get started or create your portfolio button
- Sign-up
- Head to your gmail to verify your email P.s:
> if you don't see it in your inbox, check your spam and confirm (it will redirect you to a 404 page but don't worry, close it head back to the site)
- On the signing page Sign-in and you should be able to use the product.
Note: You can log in, create a portfolio, use the AI tools, and even simulate a "Pro" upgrade via Stripe test mode!
How I Built It
I approached this project as a real-world product, not a prototype. I wanted a system where a user could sign up, manage complex data, and deploy a professional presence without touching code.
The Tech Stack
- Framework: Next.js 15 (App Router)
- AI Engine: Google Gemini API (gemini-1.5-flash)
- Database: Supabase (PostgreSQL) + Prisma ORM
- Payments: Stripe (Webhooks & Checkout)
- Styling: TailwindCSS + shadcn/ui
- Infrastructure: Docker & Google Cloud Run
🤖 The "Secret Sauce": Google AI Integration
This is where the project shines. I integrated the Google Generative AI SDK directly into the admin dashboard to solve specific user problems:
The Bio Rewriter:
- Problem: Developers often write humble or vague bios.
- Solution: A "Magic Fix" button that sends the user's draft to Gemini with a system prompt instructing it to act as a Technical Recruiter. It returns a confident, impact-focused version in the first person.
Project Description Polish:
- Problem: Users paste rough bullet points about their projects.
- Solution: An AI agent that transforms raw notes into structured "Problem-Solution-Impact" narratives suitable for a resume for non-technical professionals.
Smart Experience Sorting:
- I use Gemini to analyze unstructured job history and suggest logical categorizations (e.g., separating "Engineering" roles from "Design" roles).
We used the gemini-1.5-flash model for near-instant latency, ensuring the UI feels snappy rather than sluggish.
☁️ Cloud & DevOps Journey
Deploying a Next.js app with a database and AI keys to Google Cloud Run was a significant learning curve.
- I containerized the application using Docker, optimizing the build with a multi-stage Dockerfile to keep the image light.
- I handled complex environment variable management for Supabase and Stripe secrets within the Cloud Run revision settings.
- I implemented standalone output mode in Next.js to ensure smooth operation in the serverless container environment.
What I'm Most Proud Of
1. It’s a Tool, Not a Template
Most portfolios are static HTML. This is a CMS. You can add a job in the dashboard, hit save, and your public site updates instantly.
2. The AI is Functional, Not Gimmicky
I didn't just slap a chatbot in the corner. The AI is embedded in the workflow. It helps you when you are stuck writing, which is exactly when you need it.
3. Real SaaS Architecture
This supports user accounts, secure database relationships, and tiered access (Free vs. Pro). The integration of Stripe webhooks to automatically update the database state upon payment was a technical challenge I'm proud to have solved.
4. Resilience
During development, we faced versioning conflicts with AI SDKs and strict Docker build linting. Overcoming these to get a clean production build running on Cloud Run feels like a massive win.
Roadmap
This is just v1. In the future, I plan to add:
- Improve AI capabilities: Customizable content and image generation.
- Custom Domains: allowing users to map their own .com
- Theme: incorporating customizable layouts and designs letting users create or pick a theme that fits or describe them.
- And many others :)
Thank you to the Google AI team for the tools and the challenge! Building Workfolio pushed me to become a better full-stack vibe engineer.
Top comments (0)