Ode to Code

Well, setting up this blog certainly has been a journey. I decided that instead of taking the easy way, I would code my blog from scratch using a headless Content Management System [CMS] and a familiar framework.

 

The whole process turned out to be a lot more involved than I originally thought, which was mostly thanks to hubris. My very adept methodology of pummeling something repeatedly to break it down into manageable chunks had worked well for me up until this point, but my head simply wasn't strong enough to break through the brick wall of web development. I was cocky enough to think I could set it up over a weekend and have the first post out in an hour or two.

 

I was so very ignorant in my assessment.

 

Over the last few weeks, I tried a number of CMSs, both headless and not, ranging from general user to developer levels of complexity. Prismic was straight forward enough, but didn't allow for the fine-tuned control that I was looking for and was very basic in regards to content. Keystone was simply too involved for my brain to adequately process, though it looked very promising. Grav was bare bones, requiring too many add-ins to be downloaded for my use case.

 

Eventually I settled on the self-hosted version of Directus, an open-source headless CMS. It's an intuitive system with a very slick data centre that's extremely customisable for those who have the knowledge for it. While it gave me a headache trying to set it up, and I eventually ended up passing the torch to my partner whom is a highly qualified Web Developer by trade, once the server side was sorted Directus was relatively easy to figure out. It has a well maintained set of documents, though the organisation leaves room for improvement, and provides guides on a variety of specific use cases. If the docs fail to assist, there is a community that will probably have provided the answers you seek. 

 

If you and your organization have less than $5M in total annual income (revenue and any funding), then you do not need to pay for self-hosting Directus. This applies to all projects, including production and commercial projects.

Source

 

In addition to learning how to navigate a Headless CMS system, I also had to tackle something else new and foreign to me. I had to learn Svelte, or more specifically Sveltekit, a coding language I never even considered within my scope but has turned out to be not as intimidating as I had thought. There are plenty of documents available for the general user, and a multitude of community sources for information and assistance across the web. If that still failed, though, my Significant Other was always available to assist, which gave me a huge leg-up in the grand scheme of all things blog development. I was learning a lot, but it was nice to know I had a developer right next to me when brute force wasn't working.

 

Between learning the CMS, the language, and figuring out everything else one does with a personal website, my head was set to explode with the abundance of knowledge I was collecting. Knowledge that was well above my skill level. When finally it came to styling, I was glad to be able to use my rudimentary knowledge of HTML and CSS.

 

This was something I was more or less familiar with from my days on deviantART and toyhou.se. Finally, something I already knew! I loaded up Bootstrap, tippy tapped into the stylesheets, and ran into a big problem I hadn't faced before. Bootstrap has preset root variables, and overwriting them was a pain in the ass. Stylesheet load order wasn't having the desired effect, and after googling relentlessly I came to the conclusion I would have to use !important at the end of every single preset variable if I wanted to use my own. This was not ideal, and not even an option to be considered.

 

So I unloaded Bootstrap, and decided to type out my own version using the framework as a reference. This way it was much more customisable, without the bloat of all the modules that I won't be using. It only took a few tweaks here and there to get it functioning as it should, and I now have a much lighter website with just as much functionality. This is only one of few examples where my stubbornness gives way to logic.

 

Whenever I come up with something I'd like to achieve, something that is not within my current skill set, I become more stubborn than my average. I decide that I should be able to dive head first into the deep end and figure it out from there, with little to no prior knowledge of the subject matter. If, after banging my head against the brick wall of knowledge a few times, I can't fathom the topic or don't seem to be making progress, I give up. There is no middle ground. There is no slowly learning and building up my skill set. No no, I have no patience for that. And so here we are, taking the first steps in learning how to develop a website -- and by first steps I mean skipping tutorial island and running straight into endgame. Like speedrunning Calamity Ganon directly from the Great Plateau. 

 

Nerdy references aside, ultimately my headstrong approach didn't do me any favours. I didn't even end up doing the hard brainpower parts, that was up to my partner who was patient enough to deal with my incessant questions and misdirected frustrations. { If you're reading this, I appreciate you so much. }

 

My take away from this experience is simple; the next time I come up with a great idea like this someone needs to remind me of all the unnecessary headaches this adventure caused. And then promptly slap me because I definitely won't listen to reason.

2024-10-03 • taeng