We recently announced the launch of our new Client Area and Site Tools. Our COO talked about it from a business perspective and how important this project is for our future growth. I, on the other hand, would like to give you a technical perspective on why we see these new interfaces as a milestone for SiteGround.
SiteGround has always been a service company first and foremost. However, for many years, our business growth has been closely linked to our technical evolution. The more software we develop in-house, the lithuania mobile database higher the quality of our service, which has a positive effect on our reputation. Not only that, we have also proven to be a high-tech company that produces powerful and intelligent software solutions, always among the first in the world to implement the most innovative technologies.
So when we realized that many of our ideas were slowed down or made impossible by the limitations of the platform used, we had the courage to think bigger and go beyond what the market offered. We wanted to dare and recreate everything from the ground up.
The challenge
From a business perspective, we wanted to run a platform (frontend and backend) that works on any device, has a modern look, is lightweight, fast, secure and easily scalable. Translating this into technical terms, we identified the following goals:
1. Speed and advanced UX
We decided to use single-page applications as it is a must-have technology for a faster web experience.
2. Scalability and security
We decided to adopt the microservices philosophy and base everything on APIs. This way, the system can scale more easily and incidents have a smaller perimeter of damage.
However, when you have many services, authentication and authorization are a big problem. So we needed a secure, fast and simple solution to the Cross-Origin Resource Sharing (CORS) problem, for which we chose to use JSON web tokens.
Operating at scale when you have millions of sites hosted on hundreds of thousands of containers requires organization, service discovery, and a reliable messaging layer for which I will introduce Consul and NSQ.
Finally, observability, monitoring and notification, are essential given the complexity of the system. For these, we use Prometheus and Grafana.
The solutions
1. Single-page applications with React and Redux
Three years ago, when we started working on the project, we knew that single-page applications were becoming more and more popular because they allowed for better user experience, faster page loading times, modular design and more. The SPA ecosystem was also evolving rapidly. There were many JavaScript frameworks like AngularJS, ReactJS and Vue.js. It seemed natural and obvious that when talking about something lightweight, fast and API-driven, single-page applications were the answer. After some tests with different frameworks, we decided to use ReactJS + Redux for the new Client Area and SIte Tools, as they showed the best results in terms of performance.
Fast page loading
We have two main single-page applications. One is the Client Area app and the other is the Site Tools. Both are used every hour by thousands of people and the number is growing. Bringing the application logic into the users' browsers, where JS runs locally, has made things faster. The reason is that less data manipulation happens in the backend. Also, our apps have an object cache with CDN. This makes it really fast for users from all over the world to quickly load the app and start using it.