The Rewarding (Sometimes Painful) Process of Creating a Portfolio Website
Tags: webdev, discuss, react, github
Published: 2024-05-14 03:12:44

Hello, DEV Community! 👋

Nearly a year ago on June 8th, 2023, I made the first commit for the source code for my website. Starting this project was kind of an accident— setting up a GitHub Pages site was exercise that was mentioned in passing in an online course I was taking so I did it without giving much thought to it. I'd never done web development before that point, but as soon as I saw that first extremely basic website go live I was hooked on seeing how far I could take the project.

## Getting Started

I did some searching online at other portfolio sites to gain inspiration, taking note of features I loved and those I thought were unnecessary, jotting down notes and ideas for my own site.

Here you can see one of my earliest drafts of the site that I drew roughly in OneNote just to put all my thoughts together of the site I wanted to create:
![First Layout Mockup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cf8ujv4rjz6ka3ufajcj.jpeg)

Being as this was my first real web development project, a large majority of the early work in the project was actually research instead of coding. I familiarized myself with popular frameworks and explored various design patterns and best practices. I eventually settled on using React and NodeJS because the vast amount of online content on these would mean that I would have plenty of resources to utilize if I ever got stuck.

As I delved deeper into the world of web development, I realized that creating a portfolio website was not just about showcasing my projects but also about demonstrating my ability to learn and adapt to new technologies. Each line of code I wrote was a testament to my growing skills and understanding of web development concepts.


## Headaches and Successes

The journey of building my portfolio website was not without its challenges. There were moments of frustration when things didn't work as expected, and I found myself stuck debugging for hours on end.

The website felt like a hydra sometimes- I'd cut off the head of one problem only for two more problems to spring up elsewhere:
![Iterative To-Do List for the Site](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7sgp10msqrirlyj583u4.jpeg)

However, with each challenge I overcame, I grew more confident in my abilities. I learned the importance of breaking down complex problems into smaller, manageable tasks and tackling them one at a time. I also discovered the power of community and reached out for help when needed, whether it was through online forums, developer communities, or seeking guidance from more experienced developers.

One of the recent milestones in my journey was integrating a blog into my portfolio website. I wanted a platform to share my experiences, insights, and tutorials with the developer community. To achieve this, I delved into the world of static site generators, exploring options like Jekyll, Hugo, and Gatsby. After weighing the pros and cons, I ultimately chose to use Zola, a fast and flexible static site generator written in Rust. Integrating Zola into my existing website architecture posed its own set of challenges, but the learning experience was invaluable, and the satisfaction of publishing my first blog post made it all worthwhile.

![Setting up my blog with comment sections](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwv66w04gm5bow5q16pk.png)

## Lessons Learned

Throughout this journey, I picked up countless valuable lessons- the importance of version control and learning to set up GitHub workflows to streamline my development process to name just a few. I gained a newfound appreciation for the challenges of web development and the hard work that goes into creating seamless user experiences. I also adopted best practices for writing clean, modular, and maintainable code.

Perhaps the most significant lesson was the importance of just diving in and starting. It's easy to get caught up in the planning phase, striving for perfection before writing a single line of code. But the truth is, the best way to learn and grow as a developer is by building projects, making mistakes, and iterating along the way.

## Closing Thoughts

Looking back on this journey, I am amazed at how far I have come. What started as an accidental exercise has turned into a passion for web development and a valuable learning experience. Building my portfolio website has not only allowed me to showcase my projects and skills but has also taught me the importance of perseverance, continuous learning, and embracing challenges as opportunities for growth.

I invite you to explore my website and provide your feedback. I would love to hear your thoughts on the design, functionality, and overall user experience:

🌐 Personal Website: https://micahkepe.com
📝 Blog: https://micahkepe.com/blog
💻 GitHub: https://github.com/micahkepe/micahkepe.github.io

To anyone considering building a personal website, my advice is simple: just start. Don't worry about having everything figured out from the beginning. Embrace the journey, learn as you go, and enjoy the rewarding experience of creating something that showcases your skills and growth as a developer.

Best,
Micah Kepe