We recently completed some work for Rightmove, the UK’s most popular property portal (try saying that after an all-night hackathon).
Our task was to create a simple set of mortgage tools to provide Rightmove’s users with fast, easy ways to cost up the house of their dreams.
In this case, it wasn’t the complexity of the content itself that was the core challenge – it was how to make the experience as fast as possible on a site that serves visitors on such a massive scale. Rightmove is one of the UK’s most popular websites, welcoming some 3.2 million visits a day, or 100 million visits per month.
While the mortgage tools we’ve built are available on a dedicated page on the Rightmove site, their core importance is their appearance on each and every property particulars page. This is enabled by the APIs we’ve created, and with around 6M calls going to our API each day, reliability and speed are hugely important.
Getting to work
Given the project’s content focus, an obvious starting point might have been an off-the-shelf Content Management System (CMS) like WordPress or Drupal; something we could get up and running within a few clicks.
But we questioned that approach. Firstly, for all the apparent ease of doing things this way, there is always the risk of drawbacks becoming apparent further down the line (the cost of hosting, maintenance, or even security holes could all end up creating headaches and extra work).
What’s more, because these CMS packages can do so much, they can be too much. We decided a standard CMS package would be too overloaded with YAGNI features to be a good choice for this project, and looked hard at what Rightmove really needed.
That was content, simple navigation, and a rigorously tested UI. So we did things ourselves, using our ‘NoCMS’ solution (coded by EE alumni Marton Hipszki). Working in tandem with our API, this is the secret to Rightmove’s ability to serve its mortgage content so blazingly fast.
Built using test-driven development principles and presented to the client in weekly iterations, the solution we built for Rightmove came together almost as quickly as the content now loads.
What’s more, we designed it to be simple to support for client and developers alike. Rightmove can easily alter and update the content that NoCMS serves up, with little or no help required. What’s more, the tools and workflows we’ve chosen will make it easy for other developers to build on our work, if ever desired.
This was a short-term project, but it just goes to show what can be achieved by taking the right approach from day one.
The technology that keeps Rightmove’s mortgages moving
We carefully chose our technology stack to keep things as simple as fast as possible on this project. The API is powered by a Spring Boot Java application, running inside a Docker container. We use Codeship to deploy the NoCMS solution and the Java code into production.
The mortgages microsite is hosted on Amazon S3 and distributed via Cloudfront, which also acts as reverse proxy for the API.
Finally, the API uses ElasticBeanstalk for load balancing, hosting, autoscaling and resilience.
The end result is speedy, simple, and keeps things moving fast for millions of users – day-in, day-out.