Choosing the right platform to build your web application (AKA website) on can make a huge difference to the success of the project. It will impact the time to build, the flexibility and maintainability of the application, as well as performance and hosting costs. In today’s blog, we outline the golden rules you can’t afford to ignore.

To ensure that we choose the right platform for you, we perform an extensive discovery phase at the kick-off of all new projects to inform the decision. Here at After Digital, we develop web applications using a variety of open-source platforms including:

CMS:
- WordPress
- Magento
- Joomla
- Drupal

MVC Framework:
- Laravel
- Symfony

Spoiler Alert: No platform is perfect and each system will require compromises, as well as carrying benefits. We’ll go into this in more detail below.

Golden rule: Don't reinvent the wheel

Open source CMS systems exist for a very good reason; they provide a bedrock of well-maintained functionality. If a client comes to us wanting an e-commerce store, we could spend hundreds of hours building a bespoke e-commerce application or we could get to the same point almost immediately by installing an e-commerce system, such as Magento. In culinary terms, we are putting the icing on the cake, rather than baking the cake from scratch every time. In terms of bang for your buck, this is a no-brainer.

The same is true of content based websites, applications such as WordPress offer a fine-tuned admin panel straight out of the box, meaning your money is spent building the functionality that is unique to your application and organisation.

E-commerce websites are typically considerable in terms of complexity, due to integrations with third-parties, such as payment gateways and ERP systems. In 2017, very rarely does a client have an inventory of products that fit entirely into the traditional paradigm of: one product in a variety of shapes and sizes. Modern products can be complex; component based offerings with intricate logic determining which components will work together, pricing will be calculated on a plethora of metrics including global or customer specific discounts, multi-buy savings, and subscription models.

An e-commerce solution is unlikely to fulfil all of your requirements in its default form, so it will require tailoring to your needs. This is where your money should be spent - making the system your own.

Golden rule: Remember that building on top of a CMS is a compromise

Earlier, I stated "In terms of bang for your buck, this is a no-brainer", which is true. However, bang for buck is not the only consideration. Typically, our clients will have a picture in their mind of the kind of system they want before the project kicks-off, perhaps they have used a particular CMS before, which makes them feel comfortable, or they have heard people talking about their experience with another system. What is true of all clients, is that they want their perfect system within the budget that they have already been allocated. So naturally, the budget becomes a key metric and, because of this, CMS platforms underpin the majority of all applications that we build.

The cold hard fact is that all open-source platforms are built for flexibility first, then performance, code quality, scalability and maintainability somewhere further down the list. They are designed to be suitable for the widest variety of use-case, strengthening the numbers in their community and helping the platform prosper and develop over time.

For small to medium sized projects, this compromise is acceptable as the application is unlikely to reach the complexity or volume of traffic that could cause pain later down the line.

Golden rule: Budget is not your number one priority

During the tender process, budget is your number one priority. Once your new website is live, page load speed and an absence of bugs in your user journey are your number one priority (/ priorities!) - and rightly so as once you have invested in your new application, you would expect to live with it for a significant amount of time.

Performance and scalability: The platform itself will have "perceived" performance, that is to say that relative to another platform in a standard state and in the same server environment, it may render a page more quickly or more slowly. There are far too many variables that dictate the performance of an application to discuss here, but suffice to say the more functionality and/or flexibility that a platform includes in its standard form will go a long way towards dictating its perceived performance "as standard". Thus, starting with the most performant platform that functionally meets your requirements makes sense.

Typically, platforms such as WordPress are considered lightweight along with frameworks such as Phalcon and Slim. Joomla, Drupal, Laravel and Symfony would fall in the middleground and Magento would be heavyweight.

So, why would we use Magento if it is the least performant option as standard? This is the key - weighing up all of the pros and cons and making a decision that is specific to all of the variables of your project, business and users.

Magento offers masses of required functionality and it is easily extendable and maintainable - alternatives might be WooCommerce, VirtueMart, OpenCart, amongst many others, all of which are more performant but it comes at the expense of maintainability (a robust codebase, readily available and supported third-party extensions etc).

Long term, the maintainability, scalability, extensibility, and security of your application will be of the greatest importance to you and the most difficult to retro-fit into your application. Performance and security can be achieved easily in a scalable and maintainable system; the opposite is not necessarily true.

Golden rule: You may require more than one platform

Most public facing applications that we build will utilise WordPress in one form or another. Some will be built entirely in WordPress, others may have a blog to give content writers a platform to affect search rankings. Some may use a custom API backend for a Magento frontend application. In other instances, we may utilise a hybrid Magento/WordPress system to leverage the functionality of Magento with the light footprint of WordPress.

The options are plentiful and bound only by the ingenuity of the team building the application and their ability to extract key information at the kick-off stage to form a blueprint for a system that will serve you well over the long term.