Anatomy of the CMS

The CMS is an Oracle database application that interfaces with a number of preferred service providers enabling authenticated users to create, deploy, maintain and monitor up to 500 websites each.

All of the service providers offer very generous “always free” plans, meaning that their services are always available free of charge.

Hosting services

A website or blog is essentially a collection of pages accessed as files through a URL. A website's domain name is generally the landing page, identified by the file name “index.html”; other website pages are each distinguished by their own unique file names.

When you click on the "DEPLOY" button, the CMS creates all of the website's pages as individual files which it then compares to any previously uploaded files. All changed files are then uploaded to Netlify's Content Data Network (CDN). In this way, if you add one new post to your blog, for example, only that file will actually be uploaded. 

So, the first service provider in this CMS system is Netlify - it's role is to serve pages from it's CDN when a user enters the domain name into a browser, or clicks on a link from a Google search, or on a link in some other website.

Media services

The latest web Almanac tells us that most website content in terms of volume is made up of media files, i.e. images, videos, audio files. Rather than serve these from Netlify's CDN, we serve them from Cloudinary's CDN.

With this separation we get more overall bandwidth capacity. Both Netlify and Cloudinary offer extremely generous free plans. One specialises in serving html, javascript and css files, while the other specialises in serving optimised media files. 

Performance purists may argue that such a topography creates an overhead to establish additional network connections, but this pales into insignificance when compared to the advantages of using Cloudinary's many performance related features.

CDN is a network of servers distributed geographically such that content is delivered at lowest latency cost. Web pages are delivered to a device in Sydney from a server located in Australia, while the same content is delivered to someone in London from a UK-based server. The closer the device is located to the hosting service, the quicker it receives the content.

Database services

Most website builders, especially free ones, don't offer this as standard. But it's essential to the website building experience in so far as you want to know if anyone is actually looking at your website once it's published. 

And if they are, you probably also want to know which pages they are looking at and for how long. In addition, you want to have some idea about their experience on your site. Did the pages load fast? Did the content's position remain stable during the download? How long does it take for users to be able to interact with your pages?

While you can get most of this information through Google Analytics, we're living in a world that demands instant gratification. Most people want to launch their website and know straight away who's looking at it, where from, and how long they spend viewing the content. Using Google Analytics is great, but you have to register your site with Google console, include the necessary libraries in your code, and then wait a month before getting any insights assuming your site has reached some threshold number of hits.

This CMS is bi-directional. It both generates website pages as well as unobtrusively collects and reports visit metrics. Of course, it can never know whether a particular visitor opened a page and then promptly went for a walk. But it can know how long each page was visible on a browser, and that's probably the best we can do right now and is only made possible by javascript on the client's browser talking to the database until the session is closed.

Backup services

This one is really important. It's all very well building and publishing your website, but what happens if you lose all those hours of painstaking effort?

Using a GITHUB repository as our offsite destination, we securely backup all CMS data every day. 

An unexpected aspect of Oracle's “always free” offering is that you get to use pretty much all of its enterprise software, including the Advanced Compression and Encryption options - “normal” commercial customers would have to pay a small fortune to license these. Always free subscribers, however, get to compress and encrypt their backups completely free of charge.

Email services

Many websites invite their visitors to submit their contact details along with a message and for this to be delivered to the website owner as an email. While many visitors are suspicious about using contact forms, they can add value in cases where instant communication between visitor and website owner is important. 

Our CMS allows a generic contact form to be added to any page. Visitors that submit their details have these sent automatically to the website's designated Contact email address (defaults to CMS account holder's address). Emails are delivered signed (DKIM) by adfreesites.com ensuring their authenticity. 

Owners of websites with custom domains receive daily emails detailing latest visit and performance metrics.

Other services

IPData to get approximate location of website visits.

Terraform to build the required infrastructure as a service for AWS SES (Simple Email System).

Google for secure sign in  and Google web fonts.