06/01/2022

2022/01/06#p1
2 comments: click to read or leave your own

Today is the first anniversary of (b)log-In going live and it's been quite a ride. I can't quite believe that it has been a whole year since it launched.

The roots of (b)log-In go back to while I was still on WordPress trying to make the experience simpler and easier. My goal at the time was to avoid having to go to wp-admin.

I had created a separate page with a posting form so all I had to do was navigate to '/new' type a post and hit submit — much easier than diving into the back end. After about a year of using this I decided it wasn't enough so, in August 2020 and inspired by the P2 WordPress theme, added the form to the main page template. When logged in I could just go to the blog and add new content straight away.

October 2020 saw me add inline editing of posts: each post had an icon beside it that I could tap to switch to edit mode, a form appearing in situ with the post contents — make the required changes and hit submit. No need for wp-admin to fix typos etc.

Over the next couple of months, I fleshed out what I called my 'custom layer' on top of WordPress adding content filters (which allowed me to use custom markup) and media uploads, all straight from the front end. It made WordPress so much easier to use.

Then on Christmas Eve 2020 everything changed: I first created a version of the blog homepage that didn't use WordPress. It was a PHP page that used a MySQL query to pull posts from the database. It was originally just an experiment but the seed was sown. I had originally envisaged it as a standalone page that let you read the blog without the bloat of WordPress. A few days later, the potential for it to become its own thing became apparent and I devised a separate authentication system (which I later rebuilt from the ground up.)

I wrote at the time "I'd like to make it a fully self-contained system" but wasn't sure what trade-offs and compromises I would have to accept to make it happen.

On New Year's Eve 2020 I decided to stop development saying that I needed to focus on work and training so that I could get a new job. Creating a custom CMS seemed like a luxury I couldn't afford at the time but the idea wouldn't go away, it was always there in the back of my mind.

I went to bed on the 2nd Jan 2021 but couldn't sleep, my mind went to the blog and I had a number of ideas about how I could make the new system a reality. The next day I started coding in earnest adding inline posting and the framework for creating RSS feeds. I wrote that I was almost there on what could be considered a minimum viable product.

4th Jan 2021 saw the addition of inline editing, media uploads and full RSS feed creation triggered by posting. I could have potentially made it live at that point as I had everything I needed to create and edit posts. I was considering a commenting feature but decided that wasn't a priority. However, in typical fashion, decided to build a simple one the very next day which sent me an email when a comment was received. Inline post deletion was also added at this point along with the content filters from WordPress.

Then, on 6th Jan 2021, after only 5 days of actual development, I switched to what would become known as (b)log-In full time. A lot of the groundwork was done while still on WordPress and it was more a case of translating features rather than creating them from scratch. That saved a lot of time and effort.

5 days to get up and running then the rest of the year to polish.

The next few days saw a couple of new features, including draft posts, but then, on 14th Jan, I discovered that my code wasn't secure — a post had been overwritten with spam during the night. I wrestled with this for about the next week with little success. Posts were getting replaced and I was playing catch-up. I thought it might have been a MySQL injection but the RSS feed was getting updated with the spam posts meaning that it had to be coming from the posting process. I rewrote all of my prepared query statements and wrapped as much as I could in authentication checks.

I was thinking that I would have to scrap everything as my coding skills were not up to it but eventually got on top of the problem.

At the same time I started working on a webmention endpoint. I originally thought I was going to have to sacrifice webmentions entirely but both sending and receiving turned out to be much easier to implement than expected.

Since then, many more things have been added and I've actually gone beyond feature parity with the WordPress blog. I also thought that I would have to run both systems in parallel as I didn't feel capable of migrating everything. I needn't have worried as I eventually got the Journal, muse-letter and Garden all moved to the new system. The last holdout was the blog archive which I thought would still require WordPress as I wasn't willing/able to build an import function. Instead, I created an archive page that pulled posts, and their comments, from the old WordPress tables. With this complete I was able to completely remove WordPress from the server in September 2021.

I have no immediate plans or a roadmap for 2022, I will continue to revise and improve the code where I find issues but, as far as new features are concerned, I only add new things when inspiration strikes. There is nothing I can currently think of that is needed.

The first year of (b)log-In breaks down as follows:

  • 967 posts
  • 701 comments (239 local, the rest are webmentions mostly replies from micro.blog)
  • 4740 entries in the redirect table to ensure old links work

The last year has been amazing and the decision to drop WordPress and switch to my own system has been one of the best decisions I've made in years.

Thanks for being on the journey with me.

cancel media
avatar
matti says:Reply to matti

@colinwalker Great write up! I loved following your progress over the few months I have been reading your blog so far.

avatar
Colin Walker replied:

Thanks Martin, it's been fun.

Leave a reply



Cancel comment

You can also:

Reply by email Reply by email Send a webmention Send a Webmention

2022/01/06#p2
0 comments: click to read or leave your own

Liked: Faith in eventually...

Making something new takes patience. But it also takes faith. Faith that everything will work out in the end.

Remember that what you’re making is in a perpetual state of almost right up until the end. And it's never right even after.

Sounds a lot like the development of (b)log-In 😂

cancel media
Leave a reply



Cancel comment

You can also:

Reply by email Reply by email Send a webmention Send a Webmention

Colin Walker Colin Walker colin@colinwalker.blog