Designing My Own Blog Platform

Reading Time: 4 minutes

turned-on monitor

I have a small disdain for WordPress (WP from here on out). In fact, I probably hate it.

Every blog that I have ever set up goes through the following process:

  1. Install WP
  2. Find a theme
  3. Realize the theme is a lite version and leaves out a lot of functionality until you buy the ‘pro’ version
  4. Find a new theme
  5. Compromise on a theme because you’re not sure what theme you really want
  6. Install the theme
  7. Realize your blog looks nothing like the theme’s picture because it requires plugins
  8. Realize those plugins cost money for ‘pro’ features
  9. Compromise on features because you’re not sure if you’ll really use all of those plugins anyway.
  10. Repeat until blog is set up

If I were trying to run a successful business that revolved around a WP install, I would definitely buy a theme and pay the price for plugins. I run this blog as part of a hobby. Therefore, I do not really want to invest that much money in something that does not create revenue (since I present this website ad-free).

I really do love WP for it’s great drop-in-place ability and overall ease of use. That has always been the shining feature of the platform. I will say the good ol’ days of WordPress are long gone. You cannot simply install WP, pick a theme, add a plugin or two and be completely satisfied with the product. “But Jason,” you may ask, “Aren’t you using WordPress for this very website?” Yes, dear reader, I am. While I dislike WP and the hassle of getting an instance set up, I wouldn’t dare try to conjure up my own platform with a 1:1 feature set.

So that brings us to the point of this blog post: why I designed my own blogging system for Nova Trade Wars.

I Don’t Need All Those Features

When I was initially taking inventory of what I would need, a blog was absolutely on my to-do list. It’s safe to say that if you develop a tool, platform, game, etc. you will definitely have some type of communication platform to update users on changes you make along the way.

What did I actually need, though? I don’t want to have to go through the constant cycle of a WP dependency of updating plugins, themes, and core WP platform. I want to have a solid platform that does only one thing: blogging. I don’t need user comments, I don’t need fancy plugins for newsletters, picture processing, statistic tracking, SEO, ping-backs, track-backs, etc. I just want to have some basic features AND I don’t want to have to struggle with wrestling a theme into submission.

A Blog From Scratch

The decision to create a blogging system from scratch was not considered lightly. I explored other lightweight blogging platforms, but I wanted to be able to integrate it directly into the (eventual) Nova Trade Wars site. That’s something I just wasn’t willing to explore. Enter: Python + Flask.

I have been programming primarily in python for quite a while now. I really like creating with Python and Flask is just dead simple to use. I came up with a simple requirements list and just started building from there. Some of the requirements was:

  • Easy to use and maintain
  • Completely separate backend from the frontend
  • Basic editor capabilities
  • Not tied to the WP templating engine

As you can see, it wasn’t a very large list of requirements. One of my biggest complaints with WP is how much…exposure…everything has to the outside world. I know for the sake of a single install it needs to be this way, but I don’t like it.

Putting it together

Below you’ll see the fruits of my labor. On the main page is a list of all blog posts I made (limit 5). Simple navigation on the right of every post/page.

Some things that got added during the creation process:

  • Revision history (working on a way to click a button to restore)
  • Categories (assign on the backend and can group on the frontend)
  • Simple backup system (writes a json file that I can download)
  • Drafts

Since everything is powered by a drop-in API system, nothing is stored within the app itself. Everything is queried through API calls which means the frontend and the backend don’t talk to each other at all. I feel like that is a nice layer of security. The backend is only accessible on my production network.

It’s not as pretty as WP or as modular, but it absolutely gets the job done. I am very satisfied with the blog in its current state. There are still some things to take care of, such as a logic issue with timestamps, but things are very functional right now.

This is just one aspect I’ll be showcasing here on the blog. Can’t wait to reveal more of the backend processes and coding processes. 🙂

Oh, hi there 👋
It’s nice to meet you
!

Sign up to receive updates about things going on around here.

Select list(s):

We don’t spam! Read our privacy policy for more info.

«
»