Accounting for complexity ahead of a problem – What type of website to build?

Decisions - What type of website to build:

When planning out a project or new business process, the complexity (details) can overwhelm it, especially if not accounted for at the onset.  The trade-off of any new endeavor is balancing the cost of purchasing a solution, though imperfect, from an existing provider or creating your own version of a solution.  This holds true whether deciding to adopt or not, buy one type of backup software versus a manual process, or even hiring movers versus coercing your friends to help you move. 

For example, a business may have the choice to use a pre-templated website service such and Wix or Squarespace to host an online eCommerce catalog.  The other varying options may range from a hosted WordPress solution to a custom HTML5, CSS3, JS website, to simply an Etsy/eBay/Amazon Store.  The business simply wants to sell its products to online customers at the lowest price with the most features available.

The solution that's best for the business is that which accounts for the highest number of "future needs" of the business while not burdening the business with the cost of building out those needs immediately.


Not too surprisingly, the tool that solves many, many, many "future needs" while not extracting a high immediate upfront cost is the WordPress Platform.

Wix & Squarespace:

Wix and Squarespace offer website solutions that serve a small market: namely, businesses and groups that have a simple message, a simple product line, and need almost no customization beyond graphics and copy.  Every client of mine who contacted me for help with their Wix or Squarespace account has sought additional features beyond what those services provide, whether customized fonts, analytics, SEO, or the 1000's of additional plugins available for WordPress.

Etsy, eBay, & Amazon:

Etsy, eBay, & Amazon Stores all offer a more standardized store-front online model.  Etsy is geared to the one-off creators who have truely limited editions of their goods because they are hand-made by the shop owner.  eBay, with the massive secondary-market, offers a "frill-less" store on which you can list, track, auction, and buy anything.  The secondary market for goods is the primary sales market for eBay.  No major manufacturer or designer debuts their lines on eBay, although eBay is making many inroads into the primary goods market.  A business that operates in the secondary market probably already has an eBay account, and really the "needs" lay in how efficiency can be squeezed out of the business processes.  Amazon is in the midst of a shake off of a large section of their secondary stores that deal primarily in new goods.  Amazon is going to great efforts to sell brand name goods directly from the manufacturer, only, and not allow for the submarket of sellers who sell new goods at a higher price or knock-offs.


The WordPress platform powers 30-45% of the websites on the web.  As an open-source system, it benefits from a large community of developers, and users who continually upgrade and adapt the platform to new technological challenges.  Essentially, it serves as a graphical interface and management mechanism to a traditional LAMP-based HTML5, CSS3, and PHP, DB-powered website, which existed in the Web 1.0 era (the 2000s).  The administration was standardized, and plugin functionality was introduced, which allowed for a plethora of new, niche, functionality-driven plugins to develop to support the platform.  As a result, the platform can be extended to fit most business needs, from a simple business placard to an eCommerce store, to a community-driven site, to a BitTorrent sharing site, a simple email signup for a newsletter, a portfolio, a blog (it's original intended purpose), and almost anything that is needed.  Also, as a result of being open source, any business is able to hire a developer who can craft specialty functionality that attaches to the WordPress framework.  These custom plugins can range from a reporting mechanism for other business systems to the actual business system itself.

In all, WordPress offers the most customization at the lowest price.  While not as inexpensive as Wix or Squarespace, it offers, comparatively, an entire universe of additional features and customizations.

Custom HTML5, CSS3, and JS Website:

Custom sites are a creature unto themselves.  They can range from a simple coming soon page to the most complex Web 2.0 platform.  There are many, many considerations that go into a custom site from what's the tech stack to what's the functionality to what's the virality of the final outcome.  Custom sites are required when the business need is beyond that of Wix, Squarespace or WordPress.  In theory, one might create a WordPress plugin that contains the same functionality as a stand-alone website.  This would allow it to be replicated by anyone who installs the plugin into their site.  As this draws aways from the cash-flow model of most businesses, the custom website is usually a complex site, where progress occurs over months, with 1K-10Ks of dollars in development being spent.

"Making friends with the [sic] necessary complexity

Programming essentially consists of composition and some work with complexity. With the use of basic math and logical operations, you can build any software system — if you can cope with the complexity. No matter what programming language you are using, you’re just combining smaller blocks into bigger ones until you get a program. It sounds simple, but complexity lurks even in that stripped-down description.

So no one can avoid all complexity — but it is possible to understand and account for it before diving into code.

Toward a less-complex future

The great and terrible thing about software engineering is that there are few simple problems. However, even the most complicated projects can be made easier to understand and complete by taking the right steps at the right time — ideally before writing any code. Ask questions, account for edge cases, and always assume there is more to be understood.