The New Blog Engine

June 8, 2022
blogging

Like all good developers, new and old, you must build your own blog engine.

When I first started blogging, literally like 20+ years ago, I used (don't laugh), Live Spaces. Or Windows Live Spaces. What was cool is that it had Window Live Writer, which I'll find the working links to because Scott Hanselman actually got it open sourced in Microsoft. 

Windows Live Writer was a gem in so many ways.

Spaces was more like a rock. The normal, worthless kind of rock (not asteroid or meteorite). A bit of a wreck to be honest and it got shutdown eventually.

I then made my own “blog engine.” That thing that drives your blog. I was the driver and I build an engine (software) for a car (blog) that I could drive my thoughts through (traveling and destination). (Those were all the essential parts of a good metaphor). And then I think I used something else I downloaded. I used Word Press 

I like Word Press because it showed what I never wanted my software to be - so many moving parts to appease so many people and use cases that you ended up with a bit of a cow that was driven completely through UI because there was no need to know the code. But that comes at a price. Heft, I feel. Now, I have heard ot's better, which I hope so because Word Press powers like 873,472,3456,567 blogs, sites, eCommerce, and other types of sites globally. I have not counted them personally, so do not quote me.

Lastly, I used Miniblog which was written my Mad K. It was meant to be a very simple blog engine. And it was.

But there were things it didn't do that I wanted to do. And you now, once you're in the weeds, you ask yourself things like “Self, why do it this way? I really need to do it this other way.” For example, I ALWAYS had to provide the slug (I do not like that term) for the URL. Why? 99% of the time it's the title made friendly. Once you start changing the code, you can't really keep your fork in sync. And since Mads is no longer maintaining, though he is taking PRs (which I see sitting for quite a while), it's just not tenable [for a developer] to use something you want to modify.

So, here we are.

Caveat Time

In all these years blogging I think I may have written 100 posts. Most are lost. I did save the Miniblog ones (and they are here). I think I may have saved some others in My Documents, if I find them, I'll add them. So, I have not been a prolific blogger by any stretch of the imagination. But I want to be one so bad!

I find myself saying things like, “If my blogging software did this and that, I would be blogging right now about this.” Which is total BS - Bologna Sandwich. Those are excuses I tell myself to justify the inability to draw on enough willpower and courage to type up the thoughts and put them out there to be forever memorialized for all to see. Cause you know how it is: once it's on the internet, it's on the internet forever.

The Decision

I decided to write my own blog engine to remove every possible hurdle and barrier that I artificially place in front of myself when I want to blog something. At the very least I would be forced to either:

  • Hone my skills as I add features I deem are blocking

or

  • Be honest and admit that I am being lazy and come to terms with perpetual laziness

Wish List

So, what do I want from this blogging engine? What are the features? Here's my initial set:

  • Improved, modernized rich text editor (done, I am using CKEditor 5)
  • Auto-slug the post using the title
  • Use Azure storage for posts (because it's cheap and fast) - done, but it's a problem
  • Handle images in a good way - not sure what this means yet, but adding them into the post as a dataurl is not tenable (unless it's tiny)
  • Pick a good formatting lib for code
  • Allow rich content (like a map or media)
  • Allow for replacement of terms that I use and want to link to,

 

Follow [cat:blogging] and follow me along this journey! (see what I did there?) (If there's a link to the blogging category/tag, then, I actually implemented the feature! YES! If it's just text, then, well, I haven't).