Third Time's The Charm
The third iteration of my site was built using React and Next.js, and this time I approached it differently. Instead of diving headfirst into unknown waters, I spent time doing research, understanding the security implications of my choices, and mapping out a cleaner architecture. Next.js isn't a programming language itself, it's a framework built on top of JavaScript and TypeScript that's perfect for static and hybrid web applications using React. More importantly, it was the ideal foundation for the secure, modern CMS I had chosen. Did it still give me headaches? Absolutely. Did I still find myself debugging at 2 AM? You bet. But this time felt different because I had a clearer vision and better tools. The learning curve was steep, but each obstacle felt surmountable rather than insurmountable.

I’ve built three personal sites now. Each one has made me tear my hair out and scream numerous times. This is the story of how I conquered all of the challenges of building them, and the things I learned along the way. For starters, if you don’t me too well, I’m not a web developer guy. I’ve built websites before, but I’m no web developer, and I have zero interest in doing it professionally unless it’s a last resort. Well, seeing as I’m in tech, I knew I’d need something to showcase my actual skills, work, views, and thoughts, and what better way to do that then by custom making something that I can use as an all in one collection for people to see?
First Time: Jekyll was Hyde
Well my first attempt was… rough. You can go check it out in my GitHub if you’d like, but I basically decided to make a website using Jekyll (a static site generator), the Minimal Mistakes theme in particular (a simple, clean, content-focused theme for websites, blogs, and portfolios specifically). I built the whole site using HTML and CSS, skeleton languages that make up the foundation of a lot of modern languages and are compatible with all web-browsers, which I thought would be a common sense decision since I wanted my website to be easily viewed no matter who the person was or what they used. This is where I ran into problems.
When I made my first site, everything was off. Things didn’t line up, everything was incredibly plain, things I was trying to integrate were limited by my knowledge and skills, and I kept breaking it repeatedly with each series of edits. Then came the horrified looks and opinions from all my friends who work in software and web development. Upon learning what I was doing, not only were they asking me if I was doing okay mentally, they also gave me the knowledge that there were easier ways that would help my designs line up and my ideas come to life, aside from constant tweaks in my HTML/CSS files. I learned about automatic dark mode detection, detecting if the viewer was on a computer or a mobile device and adjusting the viewpoint accordingly, learning about CMS’s (Content Management Systems) and how I could plug better ones in if I used more modern languages, and much more. Now, this is when I decided that I needed to do better, and would try again.
Second Time: A Rough Time With React
After some research, I decided to go with React for my second site: it was in demand by a good amount of professional careers, it had numerous dependencies that could assist me and my needs, it had more CMS options, and I thought it would be a good learning opportunity for me. For those unfamiliar, React is a popular open-source JavaScript library for building user interfaces, particularly for single-page applications where content updates dynamically without page reloads. “This will be a good learning experience” I thought to myself before diving in, “I wonder how long this will take me.”
Over a week. Over a week of agonizingly pouring over my code, staring holes into my monitors while scanning to see what went wrong where, frustrated about why something wasn’t working the way I thought it would, confused beyond measure because “Google told me this was what to do though” and “the YouTube tutorial never covered this.” I had multiple days where I was up at 2 AM questioning all my life choices and wondering if I could just go to sleep and wake up to it solved… but alas, it was still broken when I woke up the next morning, waiting for me to fix it. And fix it I did. I got everything running after a ridiculous amount of time and effort and I am incredibly proud of myself for doing so. But, this leads us to why I have a third site now.
Just when I thought I was done and could relax, I got alert after alert about security warnings. I found that while I was working on my code, I was constantly getting messages about vulnerabilities with the plugins that I was using. Sure, I could have left them alone and just carried on with my business, putting up projects and blogging like nothing was wrong. But not only did that not sit right with me, I thought about how dumb that mentality would be for someone who is supposed to care about security and making the right choices to avoid future issues. So I buckled down, and started poking around at my code.
The majority of my issues were coming from my CMS and the other packages that were installed around it, which meant the best choice for my site was to switch my CMS over to something more up to date and secure. Problem is, when I tried to change it through my code, I was given headache after headache and issue after issue. Clearly, simply plugging a new CMS into my existing code wasn’t going to work. I scrapped it, decided to do a total rewrite, and just build a new site with that chosen new CMS in mind.
Third Time: Next.js and Sweet Success
The third iteration of my site was built using React and Next.js. Now, Next.js isn’t a programming language itself, it’s a framework built on top of JavaScript and TypeScript. What that means is, it’s perfect for static and hybrid web applications that use React. With all the pluses attached to it, as well as it being the ideal framework for the CMS I chose, I went all in with it. Did it give me headaches? Yes, multiple. Did it frustrate me? Yes, every day. But do I regret doing it this way? No, not at all. Now my CMS is operating better, I removed a load of vulnerabilities (it’d be a bad look if someone hacked my portfolio site), and I can say that my site even looks better this time around.
Lessons Learned While Close To Losing It
I have another post up on here about why I would choose to build my site again if it ever came to it (foot in mouth there, yeesh) but this experience has paid dividends beyond just having a working website. The systematic problem-solving approach I used to debug my React components? That was just more practice for troubleshooting network issues in a work environment. The research skills I honed while digging to evaluate different CMS options? Just made me faster when assessing new tools and technologies for me to use in future. And the patience I strengthened by keeping myself together when everything was going wrong? Well that just makes me a better human overall and more ready to deal with high-pressure situations, perfect for incident responses.
By throwing myself into something I didn’t really know about, but knew I could accomplish, I not only expanded my skillset and learned more about code, but I also learned more about myself and gave my brain the concrete proof it needed to help me be additionally confident, greater than I already was. After all, confidence doesn’t come from staring at yourself in the mirror and beating your chest while saying specific words, confidence comes from having a stack of undeniable proof that you are who you say you are, and you can do what you say you do.
I appreciate the opportunity to learn, and I’m going to keep growing and improving.