Reviving OneCMS: An old friend that runs my website now

Recently, I took it upon myself to start rebuilding my website. Giving it an overhaul and moving away from WordPress. It’s not that I don’t like WordPress — I do — it’s just that, as a web developer at heart, there’s was a part of me that missed being able to get into the deep parts of what makes a site on the internet tick.

Thus, I ripped everything out and got to building. I tried some other static generators, but those didn’t do it for me. Bootstrap Studio felt too limiting, too basic, and my license is now two years removed from updates so I was running an older version anyway. That was out. Drupal, another CMS, was out early on also. And then, it hit me…

What if I resurrect an old beginning-of-quarantine project? OneCMS. OneCMS was built overnight, in April 2020, the night my youngest brother was born. I was stressed, I was anxious, and I needed something to do. This was it. I built 4 versions of this thing until I moved to WordPress. What if I gave it a fresh coat of paint? And by that, I mean, rebuild it from the ground up and make it actually work.

So, I dug through my archives, pulled everything out, and got to work.

A quick history lesson on what each version did previously before I explain what OneCMS 5.0 can do (because, oooh boy is it a treat!)

  • OneCMS 1.0 was actually titled “ShadowCMS” after my dog. It had support for basic HTML and CSS. It contained no JS libraries or anything of the sort. It was built to be simple.
    • OneCMS 1.1 added support for FontAwesome, making it the first (and only) library addition.
  • OneCMS 2.0 was a little more advanced. It gained the “WatkinsCMS” title, as I needed a name, and was built a little more carefully. It got some more CSS enhancements, as well as improved support for “meta tags” (for social sharing).
    • OneCMS 2.1 was a special release given to a select number of outside testers to play around with. Only difference was that most references 
  • OneCMS 3.0 got animated, literally! There were more CSS-based animations inside of WebKit and Blink. Because of this, Internet Explorer support was removed. The name was also changed to “OneCMS” with this release.
  • OneCMS 4.0 improved upon the predecessor, but improved loading times. The site was just 300 KB with this change, and was hosted on Netlify for maximum speed.
    • OneCMS 4.1 added support for blogs, but was never utilized.

In short, most versions of OneCMS 4 and prior were simple static site generators. All they did was make HTML5 and CSS files work. No mass amounts of JS files, no other special files, none of that. Just something to sit atop GitHub Pages and (later) Netlify.

OneCMS 5.0 introduces a ton of new-old technologies, and is ultra-quick on its feet. Here’s a list of all the changes and fun stuff. (Yes, it’ll keep everything from 4.1 and earlier! Not everything is built-in quite yet…)

  • PHP 8 base, now runs on the web server instead of a static generator running on a computer.
  • “Components” exist to aid in site development, allowing for less edits overall. For instance, if I need to update the navigation bar, I can go edit the header file and update every page across the site instantly.
    • Currently these include the head section of the HTML source, as well as the header/footer of the webpage itself.
  • Blog mechanism has been removed. Instead, I’m here!
  • Ultra-fast load times, thanks to a massive decrease in file size and dependencies. (see this image!)
  • No JS/external libraries this time around. Everything is done locally, without any outside resources.
  • No cookies or analytics. Just the site itself.

For the time being, I’ve archived the old site. Not sure if I’ll leave it or nuke it entirely. Yet to be decided.

OneCMS 5 is something I made purely because I love making this stuff. And while it isn’t really a CMS anymore, it is powerfully simple. That’s really what matters! (I’d personally classify it as a “Framework,” if it had to have a name.)

I’m going to continue building and iterating on what I have, and keeping everyone updated along the way. I’m excited! 😀