Websites: How They Really Work
By Lauretta Shokler | Published June 28, 2018
Websites are an Ecosystem
For anyone who has ever created a quick website on a tool like Squarespace, Wix or through a hosting company like GoDaddy, you might be a little shocked when you get ready to take your site to the next level. Custom-built websites on CMS systems like WordPress, Joomla, Drupal and others can cost several thousand dollars and sometimes, in the tens of thousands of dollars. That’s a big leap from $20 per month. So why does something that appears so simple with one tool become so expensive so quickly?
The short answer is that what you perceive as a website isn’t a single entity. Sites are made up of multiple complex systems working in tandem to produce something you can see and interact with. The full explanation requires a more in-depth exploration, and we are going to use the metaphor of a house to try to explain all this.
- Website Domains & Domain Hosting:
The first part of a website we are going to talk about is the domain name. Technically this is not a website at all, but because they are so intricately related, we are going to use some creative license here. Imagine your site as a house; your domain will be the house’s postal address. A domain link often looks something like this: http://www.myswebsite.com. Domains are also used for handling email (just like your house gets mailed delivered to it), and sometimes both a website and email, but for now, we are going to focus on just the site.
Domains are hosted by the company where they are purchased which can be the same or entirely different from where the website is housed. GoDaddy, one of the most popular domain provider on the web, has a great video that explains this in detail.
- Website Server & Website Hosting
The website server is the physical device where the files that make up a website reside. Web hosting is a service that allows someone to use space on that server. Like the domain, the web server and hosting are not part of a website, but having a hosting server is required if a site is going to be accessible publicly.
Many of the open-source CMS systems (see below) are built for LAMP environments which means they require a server that is running Linux, Apache, MySQL, and PHP. Some CMS platforms are designed for .net (Microsoft) environments. I’ll stop speaking Greek here for a minute to tell you that this specific detail about the server environments is not something most non-technical people need to understand fully. I only include it here as a reminder that web hosting servers can run on any number of operating systems, just like your phone, tablet, PC or Mac, which in turn, can support only specific software programs some of which are needed to produce a website. So the layers of complexity continue to grow.
Continuing with the house analogy, think of the website server/hosting as the plot of land and foundation on which the house sits. Websites can be hosted through the same service as your domain (i.e., GoDaddy, 1&1, BlueHost), or they can be completely different. Having your domain and your website hosted in different places is the more typical setup because it offers some real advantages, but it also adds another working part to the website machine. The hosting service is also where your website’s server-side security will be, so think of that like the fence and locks on your home.
While some people still develop sites in readable HTML code, it’s not a common practice anymore because most websites are built in a piece of software called a CMS (content management system). Popular open-source CMS’s include WordPress, Joomla, and Drupal. Similarly, cloud-based web development platforms like Wix, SquareSpace and Duda also handle many of the technical aspects of a website build, but unlike open-source software, only in-house programmers can update and enhance the core functions of the programs. These cloud-based CMS systems are limited in terms of customization because the companies that make them decide on what features they will include. Open-source CMS programs are highly customizable which make them more complex and time-consuming to build as the features have to be coded from scratch or integrated into the website by third-party pieces of software called plug-ins and add-ons.
Think of your CMS as your house’s builder: i.e. Meritage, KB Homes, DR Horton or Hovnanian. Your builder uses specific floor plans (themes/designs – see below), contractors (web developers), building supplies, etc to build your website. As mentioned above, sites can also be built in straight HTML code with no CMS which is akin to architecting and constructing a home from nothing. So unless you have some serious skills or are making something straightforward, this will probably not be the best option for most websites.
Coding, the HTML, CSS Javascript, and platform code (.NET, PHP, Python, etc.), used to generate the site is probably the part of the whole ecosystem that best represents the actual website. The code determines the number of pages, how it looks, how it functions, what is tracked, etc. The best analogy for coding in our house metaphor would be to compare it to the building materials used to construct the house. The code can be built into just about anything with the right skill, but it can also be easily broken when left in the wrong hands.
The CMS and theme (see below) of a website are both built using coding languages specific to that CMS (PHP, CSS, Java, .NET, etc) as will any plugins and add-ons (also see below) included in the site. Code controls what a site looks like, where images are places, how forms and links behave, and more.
Databases are also part of any websites built in CMS software and other web building platforms. Website databases store the written content, images, user profiles, code, forms and other components of a site. Try to think of the database of your site as the framing or walls of a house. Walls form the rooms that hold the essential content just as the database tables house the critical information for a website.
Themes are used on websites built using a CMS or web-based software. Even custom designed sites can be created using a theme; it’s just a one-of-a-kind theme or a highly customized theme. While its coded to work for a specific CMS, it’s an independent piece of software from the CMS. Designed and coded by third-party development teams, themes can either be low-end and free or robust and costly; keep in mind that it is a critical element of a web-based platform site.
The facade or elevation along with the style of your house is an excellent analogy for a website theme. Themes determine the look of a site and control the repeated aspects of the design that show on more than one page like the header or footer of a website. Because third parties build them, most themes require regular updating in the same way your CMS software does.
Plugins/add-ons are upgrades of the website. They are software components that add a unique flair or functionality to a site. Plugins are the same as upgrades sold by the company that builds a home such as granite countertops, tankless water heaters or intercom systems. On a website, they might include specialized forms, event calendars, traffic tracking options, and more. Plugins can either be minor or complex, but since they are specific to certain versions of a CMS software, they don’t work for every site.
Content is the main reason why you created a site in the first place. Content makes up the information about your business, organization or topic and can take the form of images, text, video, graphics and more. Think of your website content as being similar to a home’s furniture, draperies, appliances, photos, dishes, etc. Creating and optimizing content can be very time-consuming because it not only has to appeal to and educate your site’s audience, but it also has to be crawlable and indexable by search engines.
Built in 1993, the first browser was called Mosaic, but today most people use browser software like Google’s Chrome, Apple’s Safari or Microsoft’s Edge. While not part of the website directly, a browser can determine how people might experience your site. Essentially, a browser is a piece of software that reads your website’s code and renders it on a device like a smartphone, laptop or TV. Settings within each site visitor’s browser can impact how your website both looks and functions, so it’s important to do cross-browser and cross-device testing when building a new website. In the real world of houses, there really isn’t a direct equivalent to a browser, but you could think of it as people’s personal perceptions and physical abilities. How each person looks at your house can determine whether they see the paint color the same way you do, are able to unlock the gates, or even if they bump their heads on the ceiling.
To get to a home, you must have a road on which to travel. For a website, the Internet serves as that infrastructure. The Internet is a physical system of interconnected computer networks that pass the data needed to render a website through to the site visitor’s browser and device. The Internet also serves as utility provider for the website by connecting it with third-party data sources like social media feeds or videos on YouTube the same way a home receives electricity, water, and cable from outside sources. Just like a road closure or vehicle accident can block access to a home, so can Internet outages affect the accessibility of a website.
If Websites are so Complex, Why Are Cloud-Based Sites So Cheap and Easy?
While custom websites are often built on the same technology as the simple DIY hosted options, they almost always involve third party tools or custom coding that can affect how a site renders and functions which can vary from device to device and browser to browser. The interaction between those tools or code can create conflicts in the coding that is time-consuming, and sometimes difficult to correct.
Cloud-Based CMS systems have already resolved those issues because they have a fixed number of fairly standard and simple features that have been extremely well-vetted. In other words, the time-consuming work of writing custom code and getting features to work consistently on multiple devices and browsers has already been done for the limited feature set they offer which allows them to sell that same functionality in large quantities to many different website owners. It is also worth noting that with a DIY CMS, website owners are left to do ALL the content writing, formatting and optimization themselves.
While these cloud-based CMS’s can be a great solution for a smaller site just starting out, the challenge arises when those limited functions no longer meet the needs of the website. For example, a site might need to have a custom-coded interactive feature on it the CMS doesn’t support. It might need to be much larger than the DIY CMS allows, or maybe the website owner just wants to be more aggressive in optimizing the site for search engines or get more detailed tracking about their site’s traffic. The website owner might also need help writing more compelling copy or putting it into a more pleasing format that makes it easier to navigate on the site. Many site owners run into multiple reasons for upgrading their sites, but these types of services can be time-consuming and are best done by professionals with the expertise to do it correctly, so costs can rise quickly.
If you are considering taking your website to the next level of customization, just like someone wanting to build a custom home, be prepared to spend more on the construction and the maintenance it is going to require. A custom website can be a significant investment for an organization that needs specific tools and functionality, so it’s best to take a little time to determine whether the limited functionality of a DIY site is having a serious impact on its performance and if the new site will justify the cost in the end.