Why I Created a Content Management System for My Clients in Node.js

Open-source content management systems (CMS) are great. By leveraging them, you can put up a new website in minutes, have access to hundreds (if not thousands) of free and cheap plugins for advanced functionality, and find a ton of mostly-good support.

I've built dozens of websites leveraging Joomla's and WordPress's CMSs and have produced many happy clients.

Why take the time?

So why spend the time to build a new CMS from scratch?

It started with PHP. My programming knowledge had expanded so instead of needing to leverage plugins for things such as contact forms and image galleries I could just build them myself. This way I also wouldn't be constrained by the limitations of the chosen plugin.

The same was true for templates - it was just easier for me to layout and design my own pages than to use a prebuilt template and override CSS and JavaScript styles to make the template do what I wanted.

So, I really didn't need WordPress or Joomla anymore. In fact, they sort of just got in the way.

The next few websites were built using just PHP for server-side programming and MySQL and JavaScript, CSS and HTML for front-end design. Then, wanting to leverage certain technologies, I started building client sites with Node.js.

Existing CMS Functionality

It was easy for me to manage the code, but I had many clients who wanted to make their own changes (makes sense), so I needed to build out a complete content management system. Based on different client needs, the CMS now contains default functionality for:

  • Managing page content (images, text, tables, slides, image galleries, etc.)
  • View and export form submissions
  • Create and edit events
  • Create and edit blog posts
  • Create and edit news articles
  • Upload and link to media files
  • Manage Admins and Permissions
  • Review analytical data from Google Analytics
  • Manage page metadata for search engine optimization
  • Create, manage and design alerts and banners
  • Create and send invoices via Stripe
  • Create and edit products (using Stripe for payment processing)
  • Track sales of products
  • Show reservations and ticket sales (Stripe)

Results So Far

There are currently 12 websites built using this CMS and many of them, having come from other, difficult to use platforms, are happy with the simplicity of the administrator pages and the ability to edit and manage nearly all of the content existing on any page on the front-end of the websites.

Screenshots

Here are a few screenshots of the administrator pages:

Tweet me @tylerewillis

Or send me an email: