facebookPixelMVP app development for a fitness chain platform | Case Study
MVP app development

All-in-one platform for fitness chain

How the Wise team helped a startup build an MVP app from the ground up and then contributed to its further scaling working closely with the US in-house engineering team.
Industry
Fitness & Wellness
Location
United States
Time frame
10 months

Core

Fitness & Wellness
MVP app development

Tech stack

Linode

Object Storage (S3-compatible), NodeBalancers, Linodes, Stackscripts

Cloudflare

Stream, DNS, Cache

Web development

Elixir, Svelte (Sapper), Postgres, PWA

Integrations

Stripe, Google Analytics, Zoom, Google Maps, SendGrid, OneSignal

Our expertise

Project scope

The Wise team responsible for MVP engineering delivered an end-to-end, working basic version of the digital fitness platform in 3 months and helped launch it with many improvements and extensions to reach 1.0 in another quarter. Our engineers deployed the product within tight deadlines and worked at a very fast pace throughout the project. Along with the US in-house teams, we created a video upload and playback library and developed a highly flexible, feature-rich custom payment system.

MVP development services

Front-end development

Back-end development

Cloud engineering

Payment system development

Background

Due to the unexpected Covid crisis, fitness instructors around the globe started to adopt new approaches to collaboration with their students. Virtual workouts and online personal training programs gained immense popularity during the lockdown. Addressing the new challenges in the industry, Core worked to empower instructors to continue their work in that demanding environment.

The idea behind the Core platform was to allow instructors to upload training videos, create programs, and manage events on a single platform where they would interact with their audiences and monetize their work through subscriptions and one-time purchases. From the start, the Core team aimed to build an intuitive and feature-full platform for instructors and their students rather than a simple marketplace of digital fitness resources.

The Core team needed experienced developers to work with the selected programming language and expected a high level of involvement from the engineers, both in the USA and Ukraine. They chose the Wise Engineering team to be embedded in the US in-house development team as they already had a successful collaboration on a past project.

Business & tech challenges

Though the Core platform's structure was very similar to the one of a marketplace in its broader sense, it had multiple important customizations that needed specific expertise from the tech team's perspective. That included different user flows for different personas, flexible subscription rates for vendors, and a variety of product types offered on a platform like programs, live events, and more.

01

Video & playback library

Video content is challenging to work with by default. It requires building an efficient cloud hosting infrastructure. The video with the training sessions was usually of long duration, and the system had to work with large file sizes that complicated the process even more.

02

Specific technology stack

The Elixir programming language was chosen to build the platform’s back-end. The Core team needed an engineering team who would work with this specific technology and was able to develop a scalable system that, at the same time, could be quickly modified once the product pivots took place.

03

Custom payment system

A ready-made solution was not applicable. The Core platform had to allow each instructor to add different subscription periods for their materials, like daily, monthly, or annual, set custom rates for the subscriptions, create different product types like video collections, programs, live and offline events, each with a custom pricing model.

04

Strict project timeframes

The Core team expected people to return to offline training in September 2021. Therefore, they planned to gather user feedback after the MVP testing and beta release, make improvements and then launch the platform publicly to receive a stable user base up until that time. There were also timing commitments to the project investors that the Core team had to meet.

We had had a very positive experience working with Wise Engineering in the past and wanted to work with a reliable, high-skill engineering partner. We were also looking for engineers that would work autonomously and creatively to fulfill sometimes high-level goals.

James Lee
James LeeCTO at Core

One-week boot camp

When the Core team turned to us with their request, we had only one team open for the new project. Yet, those developers didn’t have experience in Elixir development. So we arranged an online bootcamp in Elixir programming and assigned mentors from the Wise team to assist the team in their learning.

At our company, we have Wise School operating throughout the year. With this initiative, we aim to grow specific expertise for talented junior-level developers. That's why most of the Wise senior-level developers have mentorship experience and share knowledge with their teammates systematically. After the bootcamp, the engineers could consult their mentors on some tricky aspects, and this ensured our client received the winning tech realization for the functionality they requested.

MVP app development

The plan was to have a minimum viable product developed in three months after we started working on the project. At the MVP startup engineering stage, the Core platform was expected to have a number of important features and rather broad functionality for instructor page customization and video library itself.

Collaborating across continents

Within the Core project, three engineers from the Wise team were embedded in the US team right from the start, and three more specialists joined after the MVP app development step. Working in distributed teams and in different time zones, we arranged our work in two-week sprints and had daily standups and weekly demos. Engineers used Slack to communicate directly to clarify issues, Zoom for video calls, Slab to keep the tech documentation up-to-date, and Jira for project management.

As Wise engineers explained, weekly demos were very effective for the whole team. The Core team paid specific attention to the clients’ feedback and had a small focus group of instructors attend those weekly meetings. As the product developed very quickly, demos helped to analyze what was done, how users reacted to the new features, and adapt plans for the next week accordingly.

MVP engineering for global companies

Prototyping instructor’s portal

During the MVP development phase, we implemented base functionality. The designs we used were just prototyping what customization features the instructor’s profile would include. Though the back-end part for the functionality was developed properly by the Wise team already at this step.

After the essential work on the customization functionality was done, instructors that were included in the focus group received access to their Core accounts. After logging in to the system, everyone could:

  • Select brand colors, upload profile and thumbnail images
  • Add headline and subheadings to clarify fitness specialization
  • Create profile bio & add a link to the Instagram profile
  • Select categories to be found easier by the students
  • Add links to the equipment used in the sessions
  • Upload short preview video to showcase fitness specifics

Adding video sessions

The creation of video sessions was the major feature the Core team wanted to get fitness instructor opinions on during the MVP development phase. It was planned that the platform would allow uploading video content as a file or directly from Dropbox. For each session, a fitness vendor needed a way to add a title, description, upload a video thumbnail image, add tags, and a list of equipment necessary for the training. Also, when creating a session, instructors were to choose either saving it as a draft or publishing it on their public page.

To make this functionality available our team worked on the efficient infrastructure and back-end that would allow instructors to quickly upload large video files to the system and students to access the necessary materials on any device. One of the important features our team worked on was allowing users to start watching the session where it had stopped the previous time.

We also developed the Add to favorite feature and assembled completion history for students. This functionality allowed students to access favorite sessions faster and track progress more efficiently.

To store video files and images, we used S3 compatible Object Storage. NodeBalancers helped us divide the traffic between Linodes servers. Stream was selected for video hosting, and Stackscripts was used to run services on the servers. We also integrated Cache to allow fast image upload. The scheme illustrates how we organized the infrastructure for the video upload process.

Infrastructure for the video upload process

Presenting the MVP

It was the Core team's approach to constantly consult with the fitness instructors on the functionality the tech team was working on and delivering. After the MVP was ready, the Core team gathered the feedback attentively and planned the future product development based on the insights they received from the end-users.

The initial feedback on the Core platform was overwhelmingly positive. Among the features our team built, instructors especially liked the preview for the public and session pages available right within the instructors' portal.

Beta release

After a successful MVP launch, the US team focused on users\’ feedback analysis and specified the feature set both tech teams would collaborate on preparing the platform for the beta launch. Our team\'s responsibilities included progressive app development, a custom payment system, student profile functionality, and integration of automated emails.

At this step, the Wise team enrolled in the project consisted of six engineers – three with the back-end focus and three with the front-end specification. Though, everyone could work full-stack to cope with small issues and not block the engineering process.

Progressive web app development

In the new iteration, one of the main focuses was made on the student’s interaction with the platform. The engineering team decided to build a web application that would function as native iOS and Android app.

Because the engineering team was moving at a very fast pace, releasing new app versions to App Store and Google Play Market so often was not an option. The Core team decided to allow students to download the application to their devices via the Core website. That became possible with building a progressive web application and helped us to ensure:

  • Native mobile-like experience
  • Responsive app design
  • SEO-friendly product
  • Continuous enhancement

Payments processing

Building a custom payment system for the web and iOS apps was one of the key challenges of the Core project and a major responsibility of the Wise team. On the one hand, we were building a custom payment system that allowed selling different product types at custom prices for each vendor.

On the other hand, we needed to make the payment system’s back-end flexible enough to introduce changes quickly and integrate new features as the product continued to evolve.

When setting up payment options for their training materials, instructors could select what types of products they wanted to showcase and set custom pricing for each of them. There was also the ability to enable a trial period with a custom period duration.

When setting up payment options for their training materials, instructors could select what types of products they wanted to showcase and set custom pricing for each of them. There was also the ability to enable a trial period with a custom period duration.

  • Integration with the Stripe payment system
  • Payment API
  • Daily, monthly, annual subscriptions
  • Event-based purchases
  • Payment management for instructors
  • Pay-outs for vendors

Collections of videos

After the MVP was showcased to the target audience, many instructors requested the Collections feature to organize the sessions by different parameters like difficulty level, topic, methodology, equipment needed, and similar. Later on, we’ve added a limitation filter on how many sessions a collection should contain and added a duration parameter as well.

With the video collection concept introduced, fitness vendors could arrange uploaded videos into collections based on the matching tags, equipment, difficulty level, or duration. Collections were visible on the instructor's public page and helped students select the most appealing and useful materials.

Emails & notifications

To help instructors set up efficient communication with their audiences, we created a set of customizable, automated emails.

They included:

  • Welcome message after a subscription purchase
  • Welcome message after a day pass purchase
  • Notifying email with the upselling purpose

Each of the templates could be enabled separately and were customizable by every instructor.

There was also an option to add a notification with the latest updates displayed on the instructor’s public page. This helped to deliver the latest news to the students and communicate the value of the resources offered.

Public release

In the third phase, we continued to enhance the functionality of the Core platform. We analyzed instructors’ and students’ feedback after the beta launch and focused on the functionality for scheduling and performing live classes, both offline and online. We also set up some handy integrations to make this functionality more user-friendly.

Live events

Holding live classes was a natural request from instructors who wanted to interact with their students in person and in real-time. Besides, as Covid-related restrictions started to lessen, fitness vendors needed a convenient way to schedule offline events and promote them directly via the Core platform.

Zoom integration

For online classes, we set up Zoom integration with the Core platform. Instructors could schedule and manage their classes on Zoom directly from the app interface. To join a class, students needed either a subscription, a day pass, or to make a one-time purchase.

Students could register and access the class link directly from the platform, and hosts could view attendees in the instructor portal. Fitness vendors could also use other platforms of any choice, such as Youtube or IG Live.

The schemes below illustrate how the connection between Zoom and Core was implemented by the Wise Engineering team.

  1. A client requests user authorization.
  2. Zoom API returns authorization code.
  3. The client sends a request to the server with the authorization code.
  4. The server requests a user access token.
  5. Zoom API returns a JSON representation of the user’s access token.
  6. Server requests user data to get Zoom user ID.
  7. Zoom API returns JSON representation of the user.
  8. The server saves access_token, request_token, and user_id into the database.
  9. The server returns the 200 responses to the client.
Authorization in Zoom integration
  1. A client makes a post API call to the server with the event start & end time.
  2. The server makes a Zoom API call to check if the user access token is valid If it is not, we make an API call to refresh tokens.
  3. Zoom API returns new refresh and access tokens.
  4. The server makes a Zoom API call to create a new meeting.
  5. Zoom API returns JSON representation of the created meeting.
  6. The server saves a meeting JSON object into the database.
  7. The server returns a Zoom meeting URL to the client.
Meeting setup in Zoom integration

Google Maps integration

To allow instructors to set specific locations for their offline classes, we integrated the Core platform with Google Maps. In-app maps were helpful both for instructors to set locations for the events and for students that could see where the class would be held on the map.

For the outdoor classes that took place in the parks or squares, this feature was especially helpful as users saw, apart from the address, the exact location for the event right within the Core app UI.

Analytics for instructors

To help instructors evaluate their performance and grow their businesses with Core, we added students’ feedback forms after the finished sessions or live events. In this form, students could rate the class or session and leave comments on what they liked and what can be improved.

Instructors, in their turn, for each class or session, saw the number of times it was completed, as well as the number of reviews submitted. For more insights, they could access users’ comments. To resolve negative experiences, instructors could contact necessary people via direct message.

Also, in the Clients tab, instructors could see all the students who bought subscriptions or one-time classes and contact those who seemed to start losing interest or need more motivation.

We organized using a fairly standard setup: daily standups, two-week sprints, and weekly demos of work. Engineers would schedule quick calls and conversations to resolve issues and ambiguity. We built at an extremely fast pace, some of the fastest I've seen over the course of my career.

James Lee
James LeeCTO at Core

Results

Tech aspect

The Wise team managed to adopt the new requested technology quickly and assembled an efficient and up-to-date tech stack for the project.
On the front-end, our team implemented the designs created by the US team and delivered a progressive web application with native mobile experiences.
At the back-end, the platform received a scalable architecture that allowed instructors to upload extensive video files and students access them from any device.
The infrastructure of the web app was designed with the expected high service load in mind and ensured the smooth performance of all the microservices and integrations.

Business part

All three product versions were released on time. MVP, beta, and public releases were made within 9 months, with 3 months iteration for each step.
At the MVP stage, the platform already had a number of features and rather broad functionality that helped to test major business hypotheses.
Short time to market for the new features allowed to gather user’s feedback immediately and enhance the functionality receiving the best reaction.
The custom payment system made the platform appealing for instructors and helped them develop businesses at a convenient speed.

We hired Wise to be embedded engineers on our team, working alongside our product leads, product designers, and on-shore engineering team. We worked across mobile, web front-end, back-end, and payments to build first an MVP and then a polished 1.0 product that would be cross-platform and serve the core needs of online fitness businesses.

James Lee
James LeeCTO at Core

Insights for startups

The collaboration with the Core team inspired us to gather these essential tips for the startup teams that are only beginning their MVP development journey. At Wise Engineering, we also launch in-house products and find the Core team's approach very efficient. Here are the key takeaways we would like to share.

feedback

User’s feedback is essential

User’s feedback is essential

The Core team involved the target audience in the process right from the start. They conducted surveys, gathered analytic data, and arranged one-to-one and focus group meetings. Instructors attended our weekly demos, where all the teams involved could exchange ideas.

pivots

Product pivots are a good thing

Product pivots are a good thing

Arranging engineering phases in small iterations allowed us to adjust our development plan on the go. Splitting the overall roadmap into smaller parts helped us to stay flexible and accomplish high-level business goals with somewhat different realizations than we initially planned.

share

Product manager role is sharable

Product manager role is sharable

The teams where product thinking prevails in design, development, marketing, and management teams have much higher chances to succeed. In the Core project, the role of product manager was shared between CTO, Product Designer, Mobile Lead, Sales manager, and, indeed, everyone from the team.

partner

Tech partner helps move faster

Tech partner helps move faster

By empowering your in-house engineering team with the outsourcing team, you can onboard new members to a project faster and smoothly increase the number of tech specialists as the project grows. This also helps to shorten features' time to market and evaluate assumptions before moving forward.

Insights for startups

The collaboration with the Core team inspired us to gather these essential tips for the startup teams that are only beginning their MVP development journey. At Wise Engineering, we also launch in-house products and find the Core team's approach very efficient. Here are the key takeaways we would like to share.

feedback

User’s feedback is essential

The Core team involved the target audience in the process right from the start. They conducted surveys, gathered analytic data, and arranged one-to-one and focus group meetings. Instructors attended our weekly demos, where all the teams involved could exchange ideas.
pivots

Product pivots are a good thing

Arranging engineering phases in small iterations allowed us to adjust our development plan on the go. Splitting the overall roadmap into smaller parts helped us to stay flexible and accomplish high-level business goals with somewhat different realizations than we initially planned.
share

Product manager role is sharable

The teams where product thinking prevails in design, development, marketing, and management teams have much higher chances to succeed. In the Core project, the role of product manager was shared between CTO, Product Designer, Mobile Lead, Sales manager, and, indeed, everyone from the team.
partner

Tech partner helps move faster

By empowering your in-house engineering team with the outsourcing team, you can onboard new members to a project faster and smoothly increase the number of tech specialists as the project grows. This also helps to shorten features' time to market and evaluate assumptions before moving forward.