Tech stack choices in building an app from the ground up

Abstract visualisation of a tech stack, representing the foundational layers of app development and data processing. Image created by DALL·E 3.
- Advertisement -

As a start-up in today’s digital economy, crafting a winning app can be the game changer that separates the visionaries from the rest. Clearly, coming up with a marketable product or service is no longer enough.

With countless competing apps in any niche, getting users to test and install an app is one thing—preventing them from uninstalling it is another. Start-ups and developers need to consider several factors when building an app from scratch. Which programming language should they use? Which tech stack should they leverage?

According to Avinash Johnson, CTO of health tech start-up Aktivo Labs, tech stack choices are similar to driving a car.

“If it’s a highway, you go at 80 miles an hour. If it’s a village road, you drive slowly. In the end, it’s about tech helping the business navigate and achieve its user goals,” he said during the MongoDB.local Singapore event.

When ideas are still in the inception stage, Johnson emphasised the importance of allowing them to evolve over time, which means avoiding technology with long turnaround times.

“You choose tech so that businesses can quickly visualise what’s coming. They can simulate and test things in the field. At this stage, scale and other factors aren’t very important,” he added.

Healthier choices

Founded in 2017, Aktivo Labs aims to prevent chronic diseases, such as Type 2 diabetes, by promoting positive lifestyle changes worldwide. The company has a growing user base in Asia, Africa, and the Middle East, and is looking to expand to Europe and the United States.

Using an “Active Scoring” mechanism, the company tracks users’ health indicators, like sleep and exercise patterns, to create a “report card” of lifestyle activities.

“Every day, the goal is to aim for a score of 80. If the score falls between 50 to 60, it signals the need for significant changes. There are other factors involved. For instance, the amount of exercise needed by a 60-year-old woman differs from what a 40-year-old man requires. The score isn’t adjusted solely based on gender. Age and many other factors are considered to ensure the communication remains simple,” Johnson explained.

Avinash Johnson, Chief Technology Officer, Aktivo Labs. Image courtesy of Aktivo Labs.

In addition to tools for monitoring health data, Aktivo Labs introduced personalised user goals to foster motivation and a sense of community.

“It’s important for users to benchmark themselves against others, which can be done through challenges. These can be closed groups, open groups, or family challenges. A leaderboard allows comparison with others, and that gives you motivation to improve,” he noted.

To sustain healthy habits, Aktivo Labs gamified the experience by adding a point system for completing goals.

“For example, completing 7,000 steps earns 10 points. There are companies we work with that give out rewards based on certain achievements. One company even lets us convert these points into AirAsia miles. It’s also possible to present this information to insurance companies as proof of efforts to improve health, which could result in a better insurance rating. By linking these habits to real-world benefits, users are provided with both the motivation and tangible rewards needed for long-term engagement and a healthier lifestyle,” Johnson remarked.

Deep dive

Moving beyond the corporate world, Aktivo Labs began working with insurance companies to improve engagement on the apps they manage.

Acting as data processors, Aktivo Labs provides insurance companies with SDKs, which are then used to query data and build user journeys.

“Believe it or not, insurance companies have a vested interest in keeping people healthy. They want to sell policies but also aim to minimise claims. This means they want policyholders to stay healthy, as it reduces claims — or, in official terms, lowers the risk they have on their books,” Johnson said.

After developing SDKs, Aktivo Labs found that managing the UI journey became more challenging. This led the company to create progressive web app (PWA) journeys, offering insurance firms predefined journeys that they can white-label and customise. These are accessible via the web, meaning the final appearance integrates as part of the native app, the CTO explained.

From an architectural perspective, Aktivo Labs’ back-end services use Node-based and Rust-based pods. On the front end, the SDKs can be embedded into iOS and Android apps.

“We provide PWA journeys to corporate clients. There’s a web portal for companies to manage and monitor their performance. We have direct integrations with various wearables, like Fitbit, Garmin, and Oura Ring. On the back end, everything is supported by MongoDB, which we’ve been using almost from the beginning,” Johnson revealed.

Additionally, Aktivo Labs can replicate this architecture when deploying solutions for companies to support different configurations.

“We can offer dedicated clusters if the expected number of users is large enough. If it’s still in the proof-of-concept or experimental stage and you’re not expecting too many customers, we can provide co-located or shared environments,” he continued.

Tech boost

Aktivo Labs faced several hurdles during its early stages, including:

  • Having a small engineering team.
  • Focusing on app functionality.
  • Employing all-rounders and very few specialists.
  • Keeping tech costs low.
  • Ensuring the end user received data on time.

Some of the company’s early decisions included adopting a cloud-first strategy, leveraging Node and other open-source technologies, and using MongoDB as a standalone solution.

Using Node proved beneficial initially, but performance limitations soon became apparent, particularly with data processing.

“This was when we relied on our experience, particularly in working with quants, where speed was important, and they used languages like C++. However, using C++ for a start-up was extremely risky. You can have 99% of your code written perfectly, but one small mistake, by one developer, on one day, can bring the whole application crashing down. Additionally, where it crashes and what caused the issue — sometimes there’s no clear correlation,” Johnson observed.

Aktivo Labs then turned to Rust, which helped resolve many performance-related issues, particularly with number crunching. However, using Rust also meant longer development times, which impacted the time to market.

Around this time, the company also deployed MongoDB Atlas, which offered several new functionalities:

  • Easier certifications and support for RFPs and RFQs.
  • Flexibility to set up new instances.
  • VPC peering, as distance was a factor.
  • Availability of support.

“One of the key challenges, especially for a start-up, is that we couldn’t really afford DBAs (database administrators). The availability of support and access to extensive information from MongoDB made a big difference,” Johnson concluded.