Email marketing platform for corporate businesses
Software execution is an important task in technology industry. We're helping our partners make it all the way through.
In a nutshell
We prepared stable architecture for their flagship product and achieved reusability of UI between multiple projects with custom made library of components. This saved costs and a lot of time for new features.
Over the years, it has grown into a massive product with a plethora of features and a number of teams working on its products.
For us, they are the largest client that we cooperate with and provide our services to.
Our responsibility in the Clever ecosystem is the frontend of all the web and native applications Clever Monitor has to offer. In such a large scale project a lot of decisions had to be made before hand to ensure a seamless and flawless execution. We needed to prepare a solid and future-proof architecture for the whole system.
Taking into account the frequency of requests and the overall stress that the application was going to be exposed to, the efficiency of the communication had to be completely maximized.
Designing architecture with reusability in mind
Given the nature of the fast growing company we worked with here, and a number of different teams involved, we decided to use a user interface library from Facebook - React as the main implementation tool. It turned out to be a very good decision since a component based approach in maintaining a large scale interface such as this one, plays very well with working on multiple project that use the same design principles and primitives.
Creating UI library to save costs
We were able to create a (privately published) component library that is used by Clever's flagship product and a number of other sub-projects that other teams are working on. Some parts of the UI are even reused in a separate React Native app for iOS and Android that shares the same design team.
Creating tools to iterate faster
In addition to maintaining the project for an extensive period of time (we still actively develop it) and creating the library of reusable components, we also created a few internal tools in the process. This helped exceed the reusability of our internal utility system beyond the border of this project as each one of these tools is completely project agnostic. They vary in their usage, e.g. we created an interface for communicating with GraphQL backends that also handles resource caching, or an easy-to-use higher order component that handles data retention and validation in large forms.
Scaling product instead of learning curve
As always, the team here at Sudolabs is a huge supporter of code reusability, quality and further maintainability. All of the apps that we have written here are as modular as possible and use the same centralized library of primitives. And that means that as the team scales horizontally and there are more and more requirements, the learning curve stays the same and most of the UI for new projects is built exponentially faster with the use of our library and utilities.
Integrating our team with internal processes
The team that we formed for Clever is a team of many different responsibilities. We expand naturally with our client and take on various roles in various environments. We have provided team members that specialise in communicating new features and issues directly from the client to our developers and smooth out the development process naturally. On top of that, we also actively partake in research for new projects of the company and create architectures that fit into the system as it is now.