DEV Community

Gift Egbonyi
Gift Egbonyi

Posted on

I Built PortfolioDeck to Make Managing My Portfolio Less Annoying

I’ve built quite a few projects over the years, but one thing that kept annoying me was managing my portfolio.

Not building the portfolio itself.

Updating it.

The projects change. Descriptions change. Work experience changes. Case studies get added. And depending on how your portfolio is structured, you can end up jumping between multiple files in VSCode just to update a few pieces of content.

And as a developer who keeps building projects, I found myself doing this over and over again.

So I decided to build something for myself.

Meet PortfolioDeck. 👩🏽‍💻

👉 Try PortfolioDeck

What is PortfolioDeck?

PortfolioDeck is a free portfolio content management tool for developers.

The idea is that instead of opening your codebase every time you want to update your portfolio content, you can manage your portfolio data through one interface and sync the changes back to GitHub.

It currently supports managing things like:

  • Projects
  • Work experience
  • Case studies
  • Portfolio content stored across multiple files

And the changes can be synced directly to your GitHub repository.

Why I built it

I like building projects.

What I don't particularly enjoy is repeatedly opening my codebase just to update my portfolio site to reflect the new project I just built.

Imagine having your projects in one file, your work experience in another, and your case studies somewhere else.

Then you build a new project and want to add it to your portfolio.

You open VSCode.

Find the file.

Find the object.

Edit it.

Save it.

Commit.

Push.

Then you realise you need to change something else.

So you do it again.

It works.

But after doing it enough times, I started thinking:

There has to be an easier way to manage this.

That was the problem I was trying to solve with PortfolioDeck.

GitHub sync

One of the main parts of PortfolioDeck is GitHub integration.

Instead of keeping your portfolio content in a completely separate database, PortfolioDeck works with the files already in your repository.

When you make changes, you can sync them back to GitHub.

It also only commits files that actually changed, so you don't end up creating unnecessary commits for every file.

The goal is to make the process of keeping your portfolio updated less tedious without taking your portfolio content away from your codebase.

You can use Pull Requests too

I recently added another option to the GitHub workflow.

You don't have to commit changes directly to main.

You can choose between:

Commit directly to main

or

Open a Pull Request

This gives you the option to review your changes before merging them into your main branch.

What I used to build it

PortfolioDeck is built with:

  • React
  • TypeScript
  • Tailwind CSS
  • Express
  • Prisma
  • PostgreSQL
  • GitHub App integration

What I learnt building it

One of the biggest things I learnt while building PortfolioDeck is that a seemingly simple product can have a lot of moving parts.

The UI was only one part of the problem.

I had to think about:

  • GitHub authentication
  • Repository access
  • Reading and updating files
  • Creating commits
  • Detecting which files changed
  • Handling multiple files
  • Pull Request creation
  • Database interactions
  • Deployment
  • And, of course, all the random bugs that appear when everything is supposed to be working. 😂

It was a good reminder that building a product isn't just about getting the happy path working.

There are plenty of little decisions and edge cases hiding behind what looks like a simple workflow.

What's next?

PortfolioDeck is still a work in progress.

There are more features I'd like to add, and I'm particularly interested in hearing from developers who actually use it.

If you have a developer portfolio, give it a try and let me know what you think.

👉 Try PortfolioDeck: https://portfoliodeck.onrender.com

I also launched PortfolioDeck on Product Hunt today. 🎉

👉 Support the launch: Product Hunt

If you try it, I'd genuinely love to hear what you think, what feels confusing, and what you'd like to see added.

Thanks for reading. 💜


Connect with me on:


I share short, practical dev lessons regularly.

Follow me for more short, beginner-friendly JavaScript lessons every week.

Reach out to me for your web development gigs:
Please check out my [Portfolio](https://gift-egbonyi.onrender.com)
Enter fullscreen mode Exit fullscreen mode

Portfolio

Email: egbonyigiftvicky@gmail.com

See you next week! 🚀

Till then, write clean code and stay curious. 🦋

Top comments (0)