Building from scratch

work in progress monitors mfnskv

The majority of websites that we produce are built using WordPress but we still refer to them as "bespoke" because the design work is original and the website that we create does not start as an off-the-shelf template. WordPress provides a great platform to build flexible content management into our design and we are free to create something entirely unique without any limitations.

Sometimes, however, a project comes along that has such specific requirements that we decide on a complete build from the ground up. We could take the easy path and stick with Wordpress, but why include a complete installation of a CMS when we’re not going to use 90% of it? For the best solution to a web project brief, occasionally the right approach is to build it from scratch.

 

Advantages of a custom build

It is easy to fall into a routine as developers where you use the same methods all the time, and that is a good thing in terms of practice, experience and future maintenance, but there are several benefits to a "bare bones" approach:

Database freedom

As a web developer, I’ve always found it a real advantage to learn SQL (server query language) to design custom databases. Most websites running on a CMS store all the content in a database and run queries to fetch what they need at the right time. Wordpress has a certain structure to its database which utilises a lot of cross-table joining. This is fine for the majority of web pages, but when we need to search across really large datasets, things can slow down. When we design our own database, we know exactly what is going to be looked up and can group content in a single place and add indexes to speed up the search.

Performance

When we build from scratch, we’re not relying on a large library of functions and pre-built scripts so it’s a lot lighter. By writing our own code specifically for the tasks we need to perform, we can ensure they are correctly optimised and easy to maintain. It does mean writing more code but we’re only using what we need and the web browser doesn't import as much on each page load. Less round-trips to the database also means less resources needed to be utilised on the server leading to lower power consumption.

Longevity

There are two ways to look at this. On the one hand, an open source CMS like WordPress is widely known and can easily be picked up by another developer in the future. On the other, putting too much reliance on a system (or more likely, plugin) that might change in some way or even be discontinued, is a risk. Building without dependencies makes code easier to maintain because you’re working in a language in its raw, "vanilla" state. As long as the build is well documented any developer familiar with the programming language we’re using could pick it up without too much difficulty.

Custom builds in action

Last year we had 3 projects where we built from scratch: Woodhart Group’s quality control portal, Clean Growth’s carbon calculator and the University of Brighton’s "Brighton Boost" tool. All 3 were designed and built from the ground up without any major platforms or build tools - just clean design, logical database structure and vanilla code.

 

 

Woodhart portal screenshot

Woodhart portal

This build presented a lot of challenges, but the greatest consideration was performance. This is a web app used on construction sites where internet connectivity is often via mobile data. Users are required to take multiple photos and upload into the app so it needed to be as lightweight as possible while performing complex operations such as reducing file sizes on the fly and interacting with the database on the server.

We implemented various methods to keep it working well including "service worker" technology which saves crucial files into browser memory, eliminating the need to download them each time. A large amount of data is stored and constantly accessed so the database needed to be efficient and designed for purpose. We ended up with 13 tables. It could have been less, but more tables create less work for the server and makes it easier to troubleshoot.

View project

 

 

Carbon Calculator

Clean Growth’s carbon calculator helps businesses to track their carbon footprint year by year by entering their energy usage over several categories, with a goal to reach net zero. It uses sets of conversion factors to calculate emission levels as well as other hidden calculations, tracking "Well-to-tank" & "Transportation and distribution losses" & charting progress over time via graphs & reports in the user’s dashboard.

In this case, the calculator already existed on Clean Growth’s Wordpress site using a handful of plugins to generate the forms, perform the necessary calculations and create PDF reports. It was already being used but the requirements of the calculator had outgrown the capabilities of the existing build. Our challenge was to build a user friendly interface and make something very complex appear very simple.

We didn’t want the demands of the calculator to affect, or be affected by, the Clean Growth site, so we went down a custom build route. User logins are managed by certain elements of our own CMS, Traffic but the calculator itself is fully bespoke.

Learn more

 

Brighton Boost widget screenshot

Brighton Boost widget

This was a fairly simple tool that looks up results from a given postcode and returns them in a visually pleasing way. It was already too small of a build to justify installing a full CMS, but the main consideration was the 2.5 million strong list of postcodes.

We built a small set of database tables to hold the information. The postcode list has it’s own table and the initial lookup is performed here. The list was imported and an index was added to the postcode field resulting in a query that took only 0.1 seconds to return a result.

The front-end of the application then fakes a short delay to show a "searching" animation but the search is already complete before this even starts.

The completed widget was installed on the Brighton University website as an iframe with auto-resizes as key points, presenting the illusion of a built-in feature.

See it in action

 


To summarise…

The decision to build from scratch or leverage an established platform like WordPress comes down to the specific needs of each project. While WordPress remains a versatile and powerful tool for the majority of websites, custom builds offer unparalleled flexibility, performance, and longevity for projects with unique and complex requirements.

From optimizing databases for large datasets to crafting lightweight, purpose-built code, custom solutions ensure every detail is tailored to the task at hand. These bespoke builds not only deliver exceptional user experiences but also empower clients with tools that stand the test of time. Whether it's enhancing functionality, improving efficiency, or overcoming technical limitations, a ground-up approach can often be the key to creating something truly unique.


Some more articles you might enjoy

Case Study: Redesigning the Path to Net Zero

How an intuitive, user-focused platform is helping businesses measure and reduce their carbon footprints.

Sussex Business Awards 2024

It was a privilege to sponsor the Sussex Business Awards this year and be part of an evening that not only celebrated business excellence but also supported the amazing work of Rockinghorse Children’s Charity.

Whitespace Joins The Creative Group

This exciting partnership marks another milestone for The Creative Group as it continues to expand its capabilities across the creative landscape. By joining forces, the two agencies will offer an even more comprehensive suite of services to their clients, including an enhanced focus on strategy, branding and website development.