dev.twinisles.com - free articles on the Information Age and its wider implications
Building a Web site: CMS, Framework or DIY
Not so long ago, when the Web was in its infancy, creating a new site involved opening a text editor and writing raw HTML. A major improvement came in the form of “WYSIWYG” (what you see is what you get) editors such as Dreamweaver that allowed non-geeks to get their voice heard in cyberspace.
Fast forward two decades or so and aspiring site owners face a number of options, ie:
- Adopt a Content Management System (CMS) such as Wordpress or Drupal
- Adapt a framework such as Bootstrap, Skeleton or Foundation
- Take the original route of designing from scratch
This article describes the features, pros and cons of each route, helping you to make the best choice for your particular project.
Content Management System
A CMS stores Web content in a database and combines it with a pre-defined template when delivered to a requesting browser.
Pros
- Implements best practice of separating content from presentation.
- Non-technical users can add/edit content by means of WYSIWYG editors such as TinyMCE.
- The most popular CMSs (eg Wordpress and Drupal) are open source meaning they are free to use and benefit from the support of a large community. They are based upon open source technologies, eg PHP and MySQL, meaning they will run on all popular Web hosting services with many hosts offering auto-installation.
- There is a large number of themes and functionality add-ons (plug-ins) available, many of which are free, while others (premium) are paid-for.
- An entire site (however large) can be given an entirely new appearance simply by changing its theme.
- Site administration and maintenance can be carried out through a “user-friendly” dashboard.
- Support can be obtained for free from community forums. Due to the prevalence of popular CMSs experienced professional developers are plentiful.
- Much common functionality, eg search, facility to manage user comments etc, is usually included.
- Fastest route to publish.
Cons
- CMSs require some technical knowledge to maintain (eg backups, updates).
- Being open source they can be a target for hackers.
- It is necessary to keep your installation updated with latest software releases and security add-ons. This is often done automatically with hosting installed sites but be sure to check your hosts T&Cs.
- CMSs require a large installation (in terms of installed files and database) which can make them less suitable for small sites (ie installation exceeds content).
- Where many people have access to the site it is necessary to control individual user’s rights.
- CMSs are less flexible than custom-built solutions.
- The complexity of the base code can make them difficult to customize [1].
- WYSIWYG editors less powerful than hand coding (for more sophisticated effects).
Note
- Customizations should be made to “child” themes otherwise they will be overwritten when a new version of base code is installed.
Frameworks
These provide an HTML template conforming to best practice such as HTML5 standards, responsive design, older browser support etc. This template can be customized according to project requirements. In addition to the general pros and cons listed below be sure to read framework specific reviews to determine suitability for a specific project.
Pros
- Avoid re-inventing wheels by benefiting from significant efforts by others to provide a well tried and tested solution to the most common Web issues.
- Based upon latest standards, eg HTML5, CSS3, JQuery
- Free and open source.
- Most common frameworks include responsive functionality allowing a single site to serve multiple devices from desktop to phones.
- Can incorporate 3rd party add-ons, eg forums.
- Greater control achieved more easily than with CMS themes.
- Most popular frameworks benefit from large user base, eg in terms of community/support.
- Many developers are familiar with the most popular frameworks.
- Can work with technologies such as PHP, My SQL to streamline process.
Cons
- Out the box code can be bloated, containing unnecessary functionality that may need to be stripped out.
- Some frameworks encourage mixing presentation with content (although ultimately developers can, and should, avoid this approach).
- There are generally less framework-specific add-ons than for CMSs.
- More difficult than a CMS for non-technical content creation/editing, although can be done with a WYSIWYG editor (ideally protecting non-editable parts), or by storing content in a custom database and utilizing an editor such as TinyMCE. Non-technical editors may need to upload eg via FTP.
- Potentially harder to implement site-wide re-design.
DIY
The original approach, developing a solution with raw HTML, CSS etc to meet the project requirements exactly.
Pros
- Most customizable solution.
- Smallest code base as only includes what’s absolutely necessary for purpose.
- Like frameworks, can work with technologies such as PHP, My SQL to streamline process.
Cons
- Requires greatest technical knowledge to develop.
- Most work as built from a blank slate.
- Needs thorough testing given vast range of browsers, OSs and devices used to access the Web.
- More difficult for non-technical editing, see frameworks above.
- Slowest route to publish.
- Most difficult option to implement site-wide re-design.
Which Solution is Best for my Site?
All the above methods have their place in the modern Web. To find the best solution for your project, review the pros and cons above weighing them against your requirements. Typically consider:
- the technical expertise available both upfront and on an ongoing basis
- the likely size of the site both initially and in the longer term
- the number of people accessing the site and their technical ability
- the degree of sophistication of functionality and/or specificity of design required, now and longer term
Happy development!
© dev.twinisles.com 2013