Welcome back to blogging
Hello and welcome back to It's All About The Benjamins, now 100% wordpress free. With all the changes to social media in the past few years, I thought I would pick back up with the blogging.
Of course, much of the problem these days with stuff on the internet is the whole One Weird Rich Guy Personally In Charge Of Everything problem, and while first and foremost we can see that with social media platforms like Twitter and Facebook, it's also recently become the case for Wordpress. Now, I never liked Wordpress from the beginning, but after Movable Type shot itself in the foot with some really dumb decisions, it very quickly became the only real blog software.
So I decided, well, I've now had like 5 or 6 different variations of blog CMSes on iaatb.net over the years, and since my impetus for returning to blogging applies just as much to WP as it does to social media, why not write a nice minimalist blog engine that does what I want it to do, and in a programming language I actually enjoy (so, uh, not PHP!). Thus I settled on making something in ruby. I call it v7cms. Because of the 5 or 6 other ones that went before.
Ruby may be out of fashion these days, but I really enjoy the way idiomatic ruby projects are written, it just makes sense to me. I don't have a great explanation, though, sorry. There's only one complication: ruby web apps are most frequently written with rails, and it just so happens that rails is one of those things on the internet with a One Weird Rich Guy Personally In Charge Of Everything problem. So, this uses ruby 3.x and sinatra, which is a much more stripped down, barebones framework that I've used at work for an api backend project over the years. It's not perfect, but it works, as evidenced by the fact that you're reading this.
Part of the complication, though, is that I have used Dreamhost as my main website hosting for almost 20 years now, with a few brief departures to other companies that got bought out or went dark. While in the past Dreamhost supported ruby and python (another language I considered) on their shared hosting via passenger/phusion, they have discontinued this to try to promote their VPS offering which gives people who want to do that sort of thing more room to work. And look, that's great! I think 99 times out of 100 people that want to do that sort of thing should use a VPS, which is why all those VPS docker SaaS things like Vercel / Fly / etc exist. But I don't want to manage virtual servers for fun, that's what I do at work, or at least used to do as I transition to other operational tasks.
So, that seems like a dead end, then? Well, no, it's not, because in order for PHP to work on a production shared host like DreamHost provides, it needs something called FastCGI, which replaced the classic CGI interfaces of old (remember /cgi-bin/ urls?) but is for the most part only used by PHP now, and then is not something the user has to think about to set up. But — BUT! — ruby has fastcgi bindings, and with a clever enough bit of crafting of a router file and htaccess directives, you can have a ruby app that doesn't run via rack on a UNIX socket/port, but is invoked by an index.fcgi file and works automagically on shared hosting just like PHP. For a certain amount of "automagic".
Anyway I built a basic framework over the past few weekends and Thanksgiving break that would work in ruby, and then let an LLM help me figure out how to package it all into a gem and make some github automations so that I have a proper CI/CD pipeline and gem host and all that jazz, and write the documentation / boilerplate that is probably pretty embarrassing and I should go edit/replace with something written by a human. You can check it out at github.com/bennyfactor/v7cms. As I said, it's ruby/sinatra with tailwind CSS, alpine.js for some of the dynamic bits (which is a dream, by the way, compared to react/vue/whatever. It's something in between the ease of jquery and of writing haml templates in ruby 1.8.7), and quill.js for the editing box, which is way smaller than tinyMCE, which should be called hugeMCE I think.
If you want to use it too, be my guest! Or don't! Whatever. I promise I will never be a One Weird Rich Guy Personally In Charge Of Everything if it takes off.
Theoretically this blog can have comments but I'm still not sure if the google captcha stuff really works or not so I have them disabled until I'm sure I won't get a boatload of spam. If comments are on below, hooray, I made it work! If not, oh well, you can tell me how much I am TEH S UCK at https://bsky.app/profile/bennyfactor.bsky.social