You are here

Benjamin Bradley's picture

Website Maintenance Requirements for Custom Code versus Open-Source Platforms

Illustration of a house, old and dilapidated on one side, and clean and new on the other.

You Can Go Your Own Way
But You Might Not Want to Pay the Toll

When explaining my website hosting/development work to non-techies, one of my favorite analogies is real estate. A web developer will help you build a website, like a contractor helps you build a house. And a web host provides a place to put it, like finding land for your house to sit on. The analogy will stretch pretty far. Websites have addresses (domain names), and can receive mail. They have ongoing costs like utilities (bandwidth instead of water/gas), and they age just like objects in the physical world too. A website, like a house, needs maintenance.

There are several main areas in which your website will need maintenance, and different “building materials” require different levels of upkeep. In return, each "material" provides certain benefits, or features - including ways that you can interact with the website. In this article, I'm focusing on the structural maintenance - maintaining the beams and plumbing in the house. This is different from maintaining the content of your website (articles & pages), which is more like painting the walls or getting new furniture.

At one extreme end of the spectrum is a 100% custom coded website in which you & your web developer create the website from scratch. This is like buying your own land, hiring an architect to design, and a contractor to build. Everything that goes into the website is an original creation. This gives you the ultimate in customization and leanness. The benefit is that you can do anything you want. The cost is that you have to pay for it all yourself. If your website is frequently updated with new functionality (adding new doors & bathrooms), you must essentially have your own web developer (contractor) on salary.

At the other extreme is a 100% hosted solution in which you have no control over the code base, and no responsibility (or power) to maintain it. These services provide a management interface where you can create your website within the templates they provide, for a fixed monthly fee. This is more akin to renting an apartment. The code is generally very stable and well-tested, which means a solid set of features, but you have almost no input* over what it does (or does not do) and how it does it.

In between these two extremes lives open-source software, foundation code that is shared by other websites & their maintainers. An open source platform is like a house that is pre-built but unfinished, so you get some of the benefits of customizability, and only some of its headaches. At Polycot Associates, we work primarily with Drupal, an open-source content-management platform which has been around for several years at this point. The software has a large library of "contributed" modules that are maintained by the global community of Drupal developers.

Benefits of using Drupal or another open-source Content Management System:

  • lots of features built in
  • other people maintaining the code (fixing bugs and adding new features)
  • shared skillset, more people available to work on it

Hassles of open-source:

  • may include more features/complexity than you need, and depend on specific versions of third-party components
  • updates to other peoples' code may introduce bugs or security vulnerabilities
  • upgrades may be "forced" by the platform (for example, Drupal version 6 is now "unsupported" due to the release of Drupal 8)

For most websites, the benefits outweigh the detriments. You can get a website up and running in a fraction of the time that it would take to build it from scratch. If you do discover needs for improvement in the “contributed” modules you’ve acquired from the Drupal community, one of the beauties of open-source software is that you can fix it yourself & easily share the solution with others. Everyone benefits from sharing the responsibility for code maintenance.

Occasionally I dream about leaving my career in computers and working with something more predictable, like a career in carpentry. Think about a table - it's not going to suddenly stop working in 20 years because it doesn't have enough wood. It's a table, and it will go on being a table. Then again, the feature set defining what a table can do is pretty simple. 

Benjamin has a personal blog at wegeekout.com

* "hosted software has no input/feedback" - usually these sites have a message forum where users can submit and vote on new ideas for the platform, but in terms of agency, one generally has much less power to affect change.

Filed under: 
maintenance, open-source, custom, drupal