I recently asked a question about what cms have other campers tried and that is good or recommended to use. However not having experience myself on webmaster activities I wonder how one manages a site’s content if one does not resort to a CMS. Most be lots of work for a large site, for a site with lots of activity, lots of content submissions or a busy editorial schedule. So do we as developers get to design our own CMS solution? How is this done? What alternatives are there?
I can’t speak as a professional working with a company managing a busy site, but I’d be very, very surprised to find a large site with lots of activity and user submitted content (or lots of editorial submitted content) that isn’t run on a CMS with a database on the backend. I have no personal experience with this - other than writing my own projects - but I can’t see that it would be particularly viable to not use some sort of CMS on a large project with a multitude of people submitting content. Besides which, the CMSs that are out there are likely to offer a lot more functionality than any one person can code - and it would be re-inventing the wheel if there are already good solutions out there which are available for use.
But sometimes re-inventing the wheel is just fun to do!
I’ve actually spent the last five weeks writing what amounts to a basic CMS (I’ve been writing it in tandem with a new website). It’s not run on a database and not meant to support user submitted content from the web, but it does an awful lot of work related to browser side site management for the user and building and outputting site content on the server side. It’s meant to manage a static site. I manage the config and the pieces, and it handles the build and output which is then uploaded.
I’ve included the ability to parse a basic custom tag grammar which allows me to insert custom HTML constructs into the output so that the markup I write can be shorter and can easily do things like include custom written gallery/watermarking functionality, bootstrap features (tooltips, collapse, pagination, etc.) or external HTML files which will - during build time - be read in and inserted, allowing me to have common content in one file located in multiple places on the site, if I choose.
To manage the site, I’ve written a simple command line tool (called, with amazing originality,
site.exe) which performs site building, image resizing, etc. It’s managed by a few simple config files.
I run a couple of different sites for my business, and I wanted to be sure I could re-use this, so I’ve taken pains to make sure that the build code is content agnostic and so is the client side JS - aside from an initialization step on page load where you insert content content-specific page descriptions and JS.
So far I’m pretty pleased with it. I’ve considered writing a few Medium articles on it, if anyone was interested (not to put the tool out there, but just to talk about the process and they whys of it).
The main reason I ended up writing this is that I knew what a complete and total PITA it would be to not have some sort of automated system - manually editing each page, updating for new functionality, etc, etc. would be an absolute nightmare. There’s got to be a better way - this isn’t the 1990s any more!
The site itself is almost done, not quite there, but almost. You’re welcome to have a look at it, if you like. I’m hoping to make it live this week:
If you don’t want to use a full blown CMS like WordPress or Drupal, you can use a static content generator like Jekyll.
Deploy a Website (Codecademy - Jekyll) - Continue your learning by starting Deploy a Website
Static Content Generators
Thanks for your response @michealhall . Wow that sounds great I am happy for you. I guess it is fun building your own cms. I also saw how complicated it would be to edit the site by editing the html by hand on a busy site and I think most do or will at some point, so I too was wondering about this.
I asked also because I think I heard someone, somewhere a few years ago about submitting content using email or using a word document to do so. Sound familiar?