Posted: 5/15/2025
Categories: info

"How hard can it truly be to make a blog/journal system?" I once muttered to myself, embarking on a journey that would not only give my website a sniff of originality, but would also permanently shape my attitude to how I perceive other journals/blogs.

I was a young boy, about 4 days younger than I currently am at the time of writing, and I had been planning for two things; using jQuery to make my static website somewhat modular and easier to edit, but also to do one more thing - to create a journal. In terms of essentials for personal websites, a journal/blog of sorts is something that is included about 95% of the time when making such sites. And it makes sense why, really. The ability to freely speak on things that matter to you, on your own terms, on your own site? Why couldn't I do that? I definitely could, keep in mind, but I didn't want to go through the hassle of

A) making a rudimentary blog that would be a living nightmare to edit

B) using a third-party blogging service like WordPress for my own sanity

and finally C) setting up my own blog with unfamiliar tools.

You can understand my struggle, I am not a programmer at heart and my knowledge of the basics is quite simple and not exactly amazing. One may ask how I coded my last.fm tool to display the songs I am currently listening to, but most of that was actually made by the lovely owner of owner.cloud, a 2007 revival of Twitter with QoL features and a clean, modern codebase. I simply fixed the displaying cover after hours of pain, trying to figure out javascript. A relatable thing, I'm sure. But that is besides the point. I googled for a static site generator that was easy to use and also completely free. I found many examples, but not all of them were exactly "beginner-friendly" enough for me to consider using them. I opted to use a service called 11ty which was both easy to use and customizable. So now I had to begin the process of actually "programming" my blog.

The coding I never did

I was not at all familiar with 11ty, and considering what I was using it for; I didn't (and still don't) feel as if I needed to learn javascript in order to do so. I am quite lazy in coding, so I knew I didn't want to learn javascript in order to build a rudimentary system for blogging. So, there I went, searching for a guide that was easy for a beginner like me to understand, but also one that served all my needs; an archival system, categories, and an easy way to upload posts. The guide I ultimately ended up settling for was "A Complete Guide to Building a Blog with Eleventy" on github. This guide was not perfect, it was built to be used on the root directory of a website, which I could not do without making my website both a mess and not at all functional, so I had to tweak the code quite heavily from its basis in order to get a satisfactory result. But here came my next problem, something not exactly foreseen at all, even my occasionally pessimistic standards.

The Nekoweb Terminal or; "Please oh god don't freeze up on me again"

My next, and biggest problem, wasn't from tweaking what was built for me in order to get it into shape; rather, it came from the tool I needed the most, yet seemed to leave me behind at every opportunity - the Terminal. I have no idea why it did this, but a majority of the time spent trying to get this blog running was spent trying to fight the Terminal. I recognize now that this was not the work of the Terminal trying to make me weep like a victorian widow, but rather, as I learnt far too late to save the hours of anguish I suffered, that Node.js has a tendency to "lock up" as they say when running specific commands, specifically those involving the installation of dependencies, like 11ty and various other tools. The trouble is, there is no way to "unfreeze" this as it were, meaning I had to find a solution.

The Solution (or rather; a Reddit post I found that solved it for me)

I found that the easiest solution to my problems, with minimal fuss and error, were to delete two specific files: package-lock.json and package.json which are created every time you install any dependency, a sort of log so all of the dependencies you install are archived into one file; easy to update, easy to refer back to, but ultimately the cause of my problems. I couldn't simply delete them, as 11ty would simply never work, so I had to use a start.sh script that executes every time you open up the dreaded Terminal. The script looks like this:

rm package-lock.json
rm package.json
npm install --save-dev @11ty/eleventy
npm install @11ty/eleventy-plugin-rss --save-dev
npx @11ty/eleventy

The first two lines are to remove the previously stated files, to prevent everything from locking up and leaving me hopeless. The following two lines are related to the installation of specific packages/dependencies I needed in order to get my journal/blog up and running, and the final line boots up 11ty in order to get the blog running. It had been a big struggle, but after many, many hours that were rather unnecessarily lost in wild goose chases, I finally had my journal up and running. It may encounter problems in the future, but for now, it works and serves every need I have. It is basic, yes, and I seen more "sophisticated" ones around, but I'm a simple man, with simple desires. And I got everything I wanted. So there.