Infinum is an independent design and development agency founded in 2005. Counting more than 400 professionals from various domains of expertise, the company operates from offices across Europe and the US.
The company’s expertise lies in developing rock-solid, functional, and beautifully designed software solutions. They collaborate with prominent companies and brands to help them transform their business with technology.
Tilde Loop was trusted with building an important internal web application for Infinum’s client, which would enable them to keep track of all A/B tests and user tests on their web applications. Keeping track of the users is essential for business and sales so they needed a simple tool to make the process easier. We built a web application with all required functionalities and ensured compatibility with tools and platforms they use in internal communication and everyday work. One of the client’s requests was to make in-browser notifications optional so that any employee with access to this application could choose the events they want to be informed about in real-time. Our goal was to build an app that fits their needs and makes their day-to-day work more manageable, and we achieved in doing so. You can read more about the technical aspects below.
Collaboration with Infinum
Our primary task was to build a solution that centralizes and keeps track of all the A/B and User tests running on the client’s main websites worldwide. The client is a multinational conglomerate corporation.
The development of this project required our input and knowledge in many areas, including frontend, backend, DevOps, and UX/UI.
We built the whole infrastructure from the ground up on the Google Cloud Platform, setting up multiple Google Cloud runs, configuring CI/CD, setting up secure VMs that were used to run instances of open source free text search, and setting up Cloud functions to communicate with Google’s BigQuery and also to run daily cron jobs for analytics recalculations.
As the client uses Microsoft Azure for in-house communication tools and other services, we implemented Azure SSO in the application, so only employees could access it.
Version 1.0 of the app was developed in Vue.js (Vue2) with Node.js and Express.js on the backend. After the final product was deployed to production, there was an in-company decision to implement version 2.0 in React.
The next challenge was to migrate from Vue to React. We also changed the UI library from MaterialUI to Mantine. It has proved to be a good decision, the user interface was more user-friendly, and users liked it.
Another requirement with React migration was that our application needed to support browser notifications. In our solution, the frontend application first registers the service worker, so it can listen to push events from the web push server and trigger events for the browser to display the notifications. After the user clicks the button to enable notifications in our application, the browser calls the web push server to subscribe to the notification. The server responds with a subscription object that contains the endpoint and a set of public keys used for message encryption. After a successful response with subscribe object, the frontend application calls our backend API and updates the user document in Firestore with a new subscription object.
If the user takes an action we want to trigger a notification for, our backend API will use the web-push library to send the request with the subscription object and a custom message to the web push server. The server then calls our browser via the endpoint provided, and our service worker registers the notification event and displays a new notification.
Users can subscribe/unsubscribe to browser notifications and subscribe/unsubscribe for specific events inside the application that will trigger browser notifications for them.
Our last challenge was migrating the data from the client’s old tools to the new application. We wrote the migration scripts that would be used to map the data from multiple sources for tracking testing data to our new Firestore data collections so that we could migrate as seamlessly and painlessly as possible.
In a year and a half of collaboration with Infinum on the client’s project, we completed all the client’s requirements for their in-house web application. We created a solution for the client’s employees, enabling them to keep track of all A/B tests and User tests in one place. They can generate reports for existing tests and potential future tests, depending on targeted segments, selected goals, date range of running tests, and expected uplift. A good foundation for the client’s next steps was laid out with the help of our engineers, and we are happy to see what the future brings to our client in the sphere of A/B testing.