July 27, 2015
Yet Another Blogging Engine
For some reason, I yet again feel the desire to abandon WordPress in search of greener pastures, without knowing where those pastures are. Generally this ends with either me migrating away, or not writing for a long time. Clearly, from my post history, I’ve come to the latter conclusion many times.
I think I’m serious this time. But I want to be more deliberate about why, and writing helps vet that out. This is that writing.
So, what about WordPress drives me nuts?
I don’t think I like the abstraction between plain text, formatted text, and messing with the WYSIWYG editor. I want to be writing in Markdown, or something of a similar bloodline, where the text itself is descriptive of how it should render, but I’m not reduced down to vanilla HTML. I want it to be expressive, but out of my way. But most important is plain text, because that opens me up to different workflows with how I write, and makes the implement itself completely irrelevant, so long as it can edit plain text.
The messiness of WordPress’ codebase and my daily distancing of PHP makes me unhappy. I used to be able to actually understand what was going on under the hood, but those days are gone. Sadly, PHP is also one of WordPress’ greatest strengths, because it can be run anywhere for cheap.
I don’t like the control panel anymore. It’s got way too much going on. Some of that relates back to wanting a clean workflow for writing, but also management. I get more and more lost every time WordPress upgrades, which I also forget to do pretty often.
Hosting WordPress is hard. OK, it’s not really hard since PHP is easy, but to satisfy the balance I want between security and easy, combined with the fact that I host a few sites for people, it’s hard. I’ve chosen to segment PHP in to individual system users, which means it takes a lot of fidgeting to get in-place updates working. I probably could do better, but I’m not interested in figuring it out since I mostly have a process, and automation like Chef is helping with that.
I’m barely using any of the product, because my needs are simple. I don’t want comments, I don’t need extensions, plugins, any of it. I can send a tweet on my own when I post. I also am not interested in running a photo gallery, or store, or any of the other insane things people have horseshoed into a WordPress installation. I think this point is particularly painful, since I do see so many people doing such insane things with the engine, and all I want is a simple text storage and display mechanism.
Things I do like about WordPress.
It’s backed by a database. I tried the static file generator thing. It’s not for me. I know I said I want a heavily text-based writing experience, and while vanilla text files lend themselves really nicely to this, I don’t want to manage it. My brief stint with Octopress left me burdened by a slow previewer and painful renderer. I probably didn’t give it sufficient time to fully grok what it was doing, but that’s now how I want to spend my time – when it’s time to write, it’s time to write.
It’s got an API. If I end up baking my own thing, it’ll be driven completely by an API, because that’s how I want to interact with it. Should I chose to make a thick client to write in, fine. If instead I want to try to hack together some REST calls from Editorial through Python, so be it. There’s a reason blogs were the ubiquitous tutorial before Todos took over – it’s a relatively simple data model that’s mostly CRUD.
It just works. It may contain every feature from here to the kitchen sink, but it does what it’s supposed to do.
There’s a ton of community support around it. I mean, oodles. I can find free themes or buy ones. There’s a plugin for every single feature I may ever need. It’s backed by time and experience.
Images are easy. Upload and drop. If I bake my own thing, I’ll have to figure out how to get images uploaded and make references to them somehow. Going full text is unlikely. I’ve got planned articles that involve screenshots.
So What am I Thinking?
Well obviously I’m going to try going it alone. I’m way too stubborn not to. I’m going to take the things I’ve learned over the last year developing APIs and build a simple backend to host something, then a pretty and simple (and separated) UI to show it. Not because I’m worried about scale, or performance, but because it’s what I’ve been up to, and where my head is at these days. I need UI experience, and this is an apt candidate.
When it works, I’ll put the source code out there, because why not? Maybe it will help someone else solve the same problems I have with what’s available. If nothing else, buffing out the GitHub listing is good.
I’m not going to backport all of this site. There’s a lot of crappy, old content that really has no place surviving, and doesn’t serve any particular nostalgic purpose work thinking about. There are a series of tweets auto-archived — those definitely have no place moving forward. Besides, I’ve suffered article loss before. I’ll do it again.
The most important part – when? Yeah, who knows. As usual, I’m flush on side projects, and have more than enough work-work to go around. But it’s a simple thing that I’m passionate about – maybe that’ll help. And at some point, I’ll get over all faster with all this code I’m writing. Or at least that’s the theory