I preface this by saying I wish I had been blogging since the beginning of my developer journey and subsequent career path. This was honestly the #1 motivator for me to finally start my personal website/portfolio overhaul. I have been learning so much and it's been nice to have somewhere to vent, think, plan, strategize, etc. That being said, on to the main topic of this post.
What's going on?
So I'm rebuilding my portfolio since it's super outdated and not even remotely modern.
I mean... just look at this 🤦🏽♀️
I've been working on it for the past week now and all I have to show for it is a basic pancake layout (header, content, footer). While that doesn't sound so impressive given the time it took to get to that stage, please consider the following facts:
A majority of my time was spent shopping around for Gatsby starters without complicated CMS setup or too much boilerplate, plugins, etc. I kid you not I spent a solid 48 hours just trying to find a Gatsby starter that wasn't overly bloated, didn't have dependencies I wouldn't use or understand. I tried 15 at minimum before settling on this starter. It's as barebones and the default "Hello World" starter, but with Tailwind CSS mixed in. I could've setup Tailwind myself but I really didn't feel like it so I saved myself a step.
I had trouble picking a CMS. Remember how I just said I went through as few as 15 starters? A lot of them were preconfigured for Contentful, Prismic, or Sanity. I had trouble figuring our any of the starters that had a CMS built in. I had even more trouble just trying to get some of those CMSs to work properly (I've never seen so many errors in the command line before) during setup. I eventually settled on GraphCMS. GraphCMS is a GraphQL based headless CMS. I ended up going this route because my experience with GraphQL was really limited and figured this might be the best way to learn it. Plus, it just seemed more intuitive since I was already learning GraphQL thanks to needing
I didn't even begin writing out code until I reviewed my wireframes, made adjustments, picked a CMS and made the decision to "roll my own" starter so I had better control. Yup, outside of messing with the
package.json a few times over, I didn't write a lick of code. I didn't want to put the cart before the horse in a sense that I write all this code just to find out certain dependencies prevent my goal from being accomplished. I wanted to make sure I had the majority of my planning together before I started work on the front end. Plans change, so I also wanted to be flexible.
I did something I'd always wanted to learn/try. I spent so much time on Google and in docs reading and trying things out just to be able to build a dark mode toggler (oh and learned how to theme with Tailwind CSS). I learned A LOT more about how to use React and React Hooks on especially with the mobile navigation. I messed up so much trying to learn something new, but I accomplished my goal. I guess I say all this to say that sometimes things don't always move as quickly as we'd like when we're challenging ourselves, but we learn far more from our failures than we do our success.