By Jody Salt in Blognami

Why Blognami

For over 4 years now I have (in the cracks of my very limited free time) been building Blognami - a blogging platform written in JavaScript.

The first commit can be seen here:

However, this wasn't really it's beginning.

If you take a look, you'll see that there is a lot of code in that first commit! This is because there was in fact previous incarnations of it written in Ruby, developed in code repositories that have since been deleted. The code you are seeing in that first commit is code that was originally written in Ruby and has since been ported over.

Historically, in my software engineering career I have always had side projects. It is something I do to help me learn, and keep my skills sharp in my day job. Even if none of my projects come to much I will carry on doing them just for this reason alone.

So why build a blogging platform? Why did I choose to do this when where so many other things I could of done? Let me explain.

It all started with a theory

I have been doing software development for a long time now. And I had a theory (born out of experience using various web frameworks over the years), that I wanted to test.

This theory is as follows:

  • The best type of web framework would be one not developed in isolation (based only on theory), but rather by creating an app and developing the framework code for that app in parallel.

Creating a web framework this way keeps all the code sane. Every piece of code would have a rational use. If the code is not needed by the app to deliver a useful feature it can be discarded. Any optimisations would be based on real things needed by the app, nothing magical or purely theoretical.

Creating a web framework based on pure theory is much harder. The feedback loop is much slower, you first have to convince people to use it, wait for for those people to create apps and then encourage them to give useful feed back - and not just "this is crap - I am not going to use this again".

When the app and the framework are in the same (monorepo) code base, changes can be iterated on much faster.

This approach has lots of great benefits:

  • There is a super fast feedback loop. This makes a huge difference to the DevX!
  • The app can be used as a fixture to test the framework.
  • Redundant framework code can be easily stripped out.
  • It is really easy to refactor the code so that the framework features and the app features are in the right places.
  • There is an app that the framework users can study for best practices. We can use this app in tutorials to explain concepts.
  • The framework is useful straight away because there is an app that people can take and adapt (using the framework).

This approach could have worked with a variety of different types of app. However, let explain why a chose to create a new blogging platform.

Why a new blogging platform / CMS

You may be thinking "do we really need yet another blogging platform/CMS?", "aren't you just reinventing the wheel?".

I choose a to create a blogging platform for several reasons.

Reason 1 - most web apps are blog-like

If you look around on the internet and web apps in general, they are mostly just ways of capturing and presenting data/content over time. To me a blog is a pure expression of this. Here are some examples for you to think about:

  • Social media - e.g. facebook, X or TikTok - messages/images posted over time. In other words a blog.
  • Job sites - e.g. Reed / Indeed - jobs posted over time. In other words a blog.
  • Dating sites - e.g. Match or Eharmony - profile posted over time. In other words a blog.
  • News sites - e.g. BBC or New York Times - articles posted over time. In other words a blog.
  • Fitness tracking - e.g. Strava or Runkeeper - fitness metrics posted over time. In other words a blog.
  • The list goes on - I am sure you can think of others.

So if you want to pick an app that embodies most of the attributes of what is in a web app, in the most simple way possible, I believe a blog is the way forward.

Reason 2 - I think we can do lot better than Wordpress

I have in the past had to create solutions built on Wordpress, and my experience has been less than ideal. I have dealt with several Wordpress projects, and they always feel like they are held together with chewing gum and a prayer - everything feels like a hack.

The fact that the Wordpress project still uses Subversion to manage their code, should tell you everything you need to know!

Needless to say - I am not a fan!

Reason 3 - there is a huge appetite for CMS/blogging platforms

I believe due to the fact that most web apps are very blog-like, Wordpress alone powers over 40% of the internet.

I wanted to create something that would actually get used. More users will result in more feedback, providing us with more opportunities to improve the product.

Reason 4 - I want to create blogging platform that I want to use

I really liked V1 of Ghost, when their editor was markdown based - it was a joy to use. But since then it has been replaced with a more conventional WYSIWYG editor.

I really love the simplicity and distraction free nature of markdown. If you don't know what you are doing you can just write text, and you will be able to create really good articles with just that. However, if you are a power user you can do a lot more very easily without ever leaving the text.

Blognami has elements of what made Ghost really cool in V1, along with a load of other thinking that I believe makes UIs great.

Reason 5 - I really like reinventing the wheel

I believe we can always do better. Part of me gets great pleasure from doing things people say I shouldn't. Wheel reinvention is one such vice.

Where can I find out more?

You can find out more by going to: