a web app for managing digital currency earnings and peer-to-peer wireless network expansion
15software experts on the team
11k+users migrated from v1.5 to v2.0
7276users registered with the improved flow
14k+requests for hardware
problems to solve
When we first met, the client had already made their hardware available to the public and started embracing the product-led growth. New customers were signing up for the device every day and with time, so the software fuelling the hubs had to keep up with the company’s growth. The problem was that the tech teams outsourced by the client at the time weren’t able to take it to the next level efficiently enough.This brought about the collaboration with Merixstudio, in which our task is twofold. On the one hand, we enhance the user experience through comprehensive refactor and redesign. On the other, we fulfill the role of a tech partner in proposing solutions that best meet the requirements set out by the dynamic business environment and facilitate further product development.
To kick off the project work, we assembled a cross-functional team skilled in frontend and backend development, DevOps, quality assurance, and product design. With time, Merixstudio’s team grew and was ultimately divided into two pods, taking care of the app’s dashboard and the e-commerce components. Bearing in mind the dynamic environment, we also introduced two project management-related roles: a Scrum Master who handles planning, processes, tools, team motivation, and risk management, and a Proxy Product Owner who’s the client’s right-hand person in our time zone and consults the strategic decisions with the stakeholders within the organization.
The beginning of our collaboration was marked by a strong desire to elevate the existing software. Our product designers conducted a UI/UX audit to identify areas for improvement. Based on the audit’s results and the client’s insights, we set out to enhance the usability and look and feel of the dashboard. As of today, the direction of our design work is set both by the business objectives and user feedback gathered by the client’s team.
In the meantime, the developers took on the challenge of refactoring the backend and frontend code. While the team developing the older app versions did the maintenance work, Merixstudio’s team was writing new, optimized code. Wrapping it around the old codebase, which was steadily being deprecated, we ensured the continuity of service and kept the platform available to the users regardless of the changes that were taking place under the hood.
The platform's architecture was based on microservices from day one, so it was natural for us to continue developing it with Node.js – a backend framework that ensures development efficiency, increases scalability, and facilitates app maintainability in the long run. Speaking of architecture, it’s worth mentioning that we undertook to refine the DDD approach to define services’ roles even more sharply and gravitate the platform towards the event-driven approach.
The core of the application’s frontend is React, a fast and well-documented framework. Pairing it with React-query, we created a caching layer that reduces the number of API requests and, consequently, improves the dashboard’s performance. This proves particularly useful when the third-party API used by the app becomes unstable and makes the data temporarily unavailable. On the backend, our team utilizes the asynchronous capabilities of Node.js to present data to the user more dynamically. Last but not least, we’re using MapGL to ensure that visualizing data on maps is a breeze.
Pursuing our quest for efficiency, we’ve also streamlined the process of creating email templates on the frontend. Now, the team builds reusable components with styled-email-components and Storybook, and gets to quickly generate templates ready to be transferred into an email delivery platform.
On the DevOps side, the client’s platform initially employed CI on lower-level environments. As it grew, however, the manual work that the process involved became a burden. To address this issue, we’ve decided to automate the release cycle with CI/CD. Not only did it result in zero downtime deployment, but it also tightened the feedback loop and improved overall code quality. Moreover, properly implemented CI/CD helps us increase the visibility of the development process, as every change of pipeline status, be it start, success, or failure, sends a Slack notification. In terms of infrastructure, the app utilizes AWS and Docker. The Docker images are pushed to repositories and orchestrated with Amazon Elastic Container Service (ECS). Prioritizing performance and security, we use Amazon CloudFront for fast content delivery.
With seamless user experience being one of the client’s main goals, we subject the application to various tests. Our QA specialists cooperate closely with developers to match chunks of code with the most suitable testing techniques, both manual and automatic – and they resolve promptly 89% of the found bugs. As the product constantly grows, the biggest challenge is not to let new features exert an unforeseen or harmful impact on the rest of the system. That’s why we pay special attention to subjecting regression testing in the Release Candidate phase and keeping the regression scenarios lists up to date.With the client being a fast-developing scale-up operating in a dynamic industry, the product roadmap is subject to frequent transformation. As a means of staying in the loop, we regularly meet with the client’s stakeholders, including the Chief Executive Officer (CEO), Chief Technology Officer (CTO), and Chief Product Officer (CPO), to discuss the product vision, keep up to date with the work of other tech teams, and propose best-fitting solutions. To make pivots less hectic, we pay attention to the client’s early ideas, anticipate the needs, and build foundations for functionalities yet to come. Finally, if the new feature release entails taking shortcuts, our team repays the tech debt on an ongoing basis to prevent it from piling up and do the necessary maintenance work.
the processes of selling, shipping, and payment for the hardware are all handled within the app using Shopify.
early adopters can upgrade their earning plans to the currently available options within the application.
all it takes to earn an extra income from every ordered hub is to send an invitation link from a “referral” section in the dashboard to a friend.
the dashboard clearly visualizes the user’s earning history and current earnings per hub.
users can check the density of the peer-to-peer wireless network created by the hubs located in the vicinity.