Building my portfolio: how I structured it and why

Putting together a portfolio site can feel like a project in itself β€” especially when you're still growing your skills and figuring out what kind of developer you want to be.

For me, the goal was simple: I wanted to create a site that felt personal but professional. Something that showed where I'm at, how I think, and the kind of work I want to do more of.

What I wanted it to do
I built this portfolio primarily for hiring managers, so I kept asking myself:

  • If someone only spends two minutes here, what do I want them to walk away knowing?
  • How can I show my personality without overloading them with info?
  • Can I make it easy to navigate without being too minimal?
I wanted it to include my story, highlight a few projects I'm proud of, and give people an easy way to get in touch. That's it. No fluff.

How I built it
To save time β€” and to show that I could work with and adapt existing code β€” I started with a nice little open-source React template I found on GitHub:
πŸ‘‰ truethari/reactfolio

It had the basic structure I needed, and from there I tweaked and reworked the design, components, and layout to make it feel like mine. It was a good exercise in reading someone else's code, figuring out how things fit together, and customising it to suit my needs.

You can see the full source code for my version here:
πŸ‘‰ github.com/davedonnellydev/portfolio

Dynamic GitHub project integration
One of the features I added was a GitHub API integration to automatically pull in project data. It fetches my public repos, filters by specific topics/tags, and displays them in the Projects section of my site.

Why? So I never have to manually update the portfolio whenever I start a new project. If I publish something new on GitHub and tag it appropriately, it appears automatically. It's a small detail, but one that saves time and keeps things current.

Decisions I made on content

  • I kept the writing conversational - I wanted the tone to sound like me, not like a resume.
  • I included real projects, not just coursework - Even small tools or code experiments that solved real problems got a place.
  • I wrote blog posts that reflect how I think - I figured it's a good way to show how I work through problems, not just what I can build.
  • I didn't overload it - Some things didn't make the cut β€” not because they weren't good, but because they didn't help tell the right story.

What I'd do differently next time
Honestly, I probably spent a bit too long tweaking things that didn't matter much. Colours, font sizes, animations β€” the perfectionist in me definitely slowed down progress at times.

Next time, I'd probably prototype faster, commit to a structure earlier, and spend more time up front on content planning rather than fiddling with spacing.

But all up, I'm happy with where it landed β€” and proud of how far I've come.

Final thoughts
A portfolio doesn't have to be flashy β€” it just has to be honest. This is where I'm at right now, and I've built it to reflect that. If you're building your own, my advice is simple: focus on clarity, show your process, and don't wait for β€œperfect” before you hit publish.