January 22, 2021

Topik - A Flat File Blog System

I built a flat-file, PHP based blogging system. The site you're on right now is based on it!

I've been using WordPress as my CMS and blogging platform for the better part of my career. When I first launched my site, https://natenorthway.com, I used a static blog and wrote HTML pages. I matured on to Void and eventually WordPress. I don't like a lot of things about WP, and I wanted to address those issues with this refresh.

What's Wrong With WordPress?

I mean, there's nothing wrong with it. I just don't think it serves my needs anymore and there's a lot of things about it I don't like. But, the short and long of it is that it's got limited functionality out-of-the-box, spam exposure, questionable security, and inexperienced developers (self included). Other issues include the weight and speed. WP pulls in a lot of outside libraries and external resources that slows down page speed and introduces render-blocking resources. jQuery is one of those things, and I really don't like jQuery. I had like, 600 words typed up here a little while ago going in to the details of those claims, but I don't want this post to be about what's wrong with WP, I want to talk about Topik.


What IS Topik?

I'm so glad you asked! Topik is \an open source, database-less blogging system (or flat-file) that is based in simplicity and speed. There is no "admin" section and this is not a CMS. This system simply gathers all of your posts and puts them into a comprehensive view. Posts are written in PHP and require a little bit of PHP knowledge to get started.

Topik is Customizable

The whole system is based around the Post class, which has functions in it to get posts, find recent posts, paginate posts, get adjacent posts, and get post meta information. The core is extendable, so additional functionality can be added in. Any fields you'd like can be added to the posts, as well as features like featured images, SEO boosting, whatever you'd like!

I wanted this to look good out of the box but be lightweight, so I used Bulma on a CDN to get you off to a good start, but you'll want to change that up. Or maybe you won't - but at the very least, change up the mark up to be whatever you'd like. The documentation goes through how to use the functions and it's not that complicated - even with just a passing understanding of PHP.

Posting

Posts are written in PHP and all the variables are customizable right at the top. Title, description, and date are the default fields, but more can be added.

Speed & Performance

I was really happy to see that this whole system comes in at less than 100kb and scores 100 for both mobile and desktop on Google Page Speed Insights.

The Future

I hope to expand this to include a lot more out-of-the-box functionality like a search function, built-in SEO features (like variable keywords, social media meta tags, and more), and media features like featured images and more. Ultimately, it's all about the themeing, and I really hope I can release a theme template.

I don't think this addresses all of the issues of a WP site, nor does it have all of the functionality, but it definitely addresses the speed, performance, and security issues - which to me, is a great start.

You can find Topik at http://topik.natenorthway.com and on GitHub.