Building My Digital Home: A Portfolio That Grows With Me
This is a submission for the New Year, New You Portfolio Challenge Presented by Google AI
About Me
I graduated from Politecnico di Torino in 2023, and I’ve been working as a fullstack engineer ever since, mostly in the fintech industry. I like being involved in the whole process, from how something looks and feels to how it works under the hood.
Outside of the terminal, I’m a serial hobbyist: I enjoy gardening, writing, drawing, cooking… Too many interests, I know. I’ve always needed a creative outlet, which is why I enjoy frontend development: it allows me to bring that artistic mindset into a technical environment.
Portfolio
Click HERE to view the website.
How I Built It
I stuck with what I know: TypeScript and React. It’s what I use at work every day, so building something personal with the same tools just made sense.
For hosting, I went with Google Cloud Run because it handles containers well and scales on its own. I also set up Cloud Build so that every push to main triggers a redeploy, which means one less thing to worry about.
For the database, I picked Firebase. It’s non-relational, fast to set up, and perfect for what I need since I’m just storing articles and project data. On the frontend, RTK Query handles fetching and caching, which keeps things clean.
To get moving quickly, I used Google AI Studio and Antigravity to setup the base structure. I wanted something ready quickly, so I kept it simple: a dynamic frontend that talks directly to Firebase through its API, no backend involved. This keeps things lightweight and means I can update content whenever I want without redeploying.
More Than a Portfolio
I didn’t want a static portfolio that just sits there. I wanted a space where I can write about what I’m learning, what technologies I’m playing with, or just what’s going on in my life. Kind of like a blog.
That’s why I separated the app into distinct pages rather than a single-page layout. It provides better topic separation, especially as the content grows.
Design Decisions
I wanted the UI to feel personal, but since it’s still a professional portfolio, I didn’t want it to feel too casual either. So I made it flexible: users can switch between light and dark mode and choose between two fonts.
I personally really like Gaegu because it’s more fun to read. But I also understand it doesn’t look as “serious” as something like Albert Sans, so I left the option open for visitors to choose what they prefer.
To improve the reading experience, users can also adjust the font size directly on the website. And for the navigation, I made the navbar hide when you scroll down and reappear when you stop. It’s a small detail, but I didn’t want it getting in the way of the content.
Challenges
Google AI Studio is great at generating things quickly, but it struggles with precision. I spent quite some time polishing details that the AI kept getting wrong.
The timeline component was a good example: I wanted all the dots perfectly centered along a vertical line, with smaller dots at the top and bottom to mark the start and end. The AI would consistently misalign them, which made the whole thing look off. It took some manual tweaking to get it right.
The projects section was another challenge. I had this idea for a deck of cards that fan out when you hover over them. It looks great on desktop, but I needed it to work on mobile too. So I designed it to fold and unfold automatically as you scroll when you’re on a smaller screen.
What I’m Most Proud Of
Honestly, the infrastructure side surprised me the most. I hadn’t really dug into Google Cloud before this, and now I’ve got Cloud Run talking to Firebase, secrets stored properly, and automatic deploys every time I push to main. It just works, and that feels good.
But if I had to pick one thing, it would be the data structure I built for articles and projects. I wanted to be able to mix different content blocks—code snippets, images, videos, paragraphs, without having to rethink how everything fits together every time I add something new. So I made it composable, and now I can just drop in whatever I need and it slots right in.
I also added a search bar with fuzzy search and filters for the articles section. It might be a bit much for now with just a few posts, but I know I’ll appreciate it later as the content grows.
The site itself is simple and minimalistic, and that was intentional. I didn’t want it to scream “look at me”, I just wanted a place where people can get to know who I am, what I’m interested in, and what I’ve been working on. And yes, it’s fully responsive, so it looks just as good on your phone.
In the coming weeks, I’ll start uploading more articles, no deploys required. That’s the whole point: a portfolio that grows with me.
