← All work

Inzer

Gym members learn each machine and log every set on its shared tablet

Inzer puts a tablet on every gym machine that shows members how to use it, pairs with their phone by QR code and records each set. We built the tablet app, the member app on both stores and a multi-gym admin portal from one web codebase, and we keep shipping into it.

Healthcare & WellnessGym floor tablet and member appModernized a live product

The machine tablet home and the set log for an exercise with how to video buttons.

The challenge

Members relied on trainers, guesswork and handwritten logs. The founder brought a written brief for a screen on every machine, a member app and an admin portal for gym networks.

What we did

One React and Node.js web app runs the machine tablet, the member's phone and the admin portal, kept in sync over web sockets and wrapped for both app stores.

The outcome

The apps are published on Google Play and the App Store, the product went into its first live trials at gyms, and we keep adding features to it.

Status
On both app stores, in live trials at gyms
Screens
Machine tablet, member phone, admin portal
Admin levels
Super admin, gym admin and branch admin
Codebase
One web app for every screen and both stores

The starting point

Inzer, a fitness technology startup in Australia, puts an 11 inch tablet on every gym machine and pairs it with a member app on the phone. Gym networks use the platform to guide members at the machine, record their workouts and run machines, content and members across gyms and branches.

What had to change

Members get little guidance on how to use a machine, which muscles it targets or how they are progressing, so they rely on trainers, guesswork and handwritten logs. The founder came to us with a written brief and no product yet.

What could not break

  • A shared tablet: a safety notice every session, guest mode and idle logout with a countdown
  • Tablet and phone show the same machine content at the same time
  • Content stays locked to the machine each tablet is configured for
  • One owner can run several gyms, each branch with or without tablets
  • Social sign in works inside the store apps, including sign in with Apple

The calls we made

We treated it as one product on three screens, so most calls were about keeping a shared tablet and a personal phone in step without building anything twice.

  1. 01

    One web codebase, proven in Sprint 0

    A short proof of concept of QR pairing and a progressive web app showed that one React and Node.js codebase could run the machine tablet, the member's phone and the admin portal.

    Ruled out

    Separate native apps for each screen from the start.

  2. 02

    Phone pairing in the first release

    We moved QR sign in into the first release along with the phone app, so a member already signed in on the phone scans the code on the tablet and both screens stay in sync over web sockets.

    Ruled out

    A tablet only first release, with the phone app left for a later stage as the first scope had it.

  3. 03

    Change requests as their own phase

    Requests from each review meeting were logged by meeting, estimated and delivered as a second phase, so the first release kept its scope while the product kept growing.

  4. 04

    An admin model for gym networks

    When Inzer asked for one owner to run several gyms, we extended the super admin, gym admin and branch admin consoles while they were being built, with a with or without tablets setting per branch and soft delete and restore for admin accounts.

  5. 05

    Keep the web app for the stores

    We built a React Native proof of concept of the member app to test a native path, then kept the web app as the product, wrapped it for Google Play and the App Store and added sign in with Apple after an App Store rejection.

    Ruled out

    A native rewrite of a product that already worked.

How the system fits together

watches, logssetsscans QR codeconfiguresweb socketsweb socketsmachines,contentmediaemailssign insetsusage timereportsGym membersAt the machine andon their phonesGym networkadminsSuper, gym andbranch adminsMachine tabletOne per machine,locked to itMember appWeb app, wrapped forboth storesAdmin portalMachines, QR codes,content, reportsNode.js backendAWS EC2, web socketsfor live syncAmazon S3App files, videosand thumbnailsAWS SESCredential andverification emailsGoogle, Facebook,AppleSign in, also insidethe store appsWorkoutrecordsSets, reps andweights per memberUsage andperformanceMachine usage andmember progress
PeopleBuilt by DaticsData storeOutside serviceAll three screens run from one web codebase and one Node.js backend on AWS, and the store apps wrap that same web app instead of a native rebuild.

What we built

Machine tablet

How-to videos and targeted muscle animations locked to the configured machine, entry of sets, reps and weights, guest mode, a safety notice each session and an idle logout with a countdown that records the machine's usage time.

The safety notice each session and the machine tablet home with the machine name and volume chart.

Member app

Members sign in with email, Google, Facebook or Apple, scan a machine's code, see their workout history, book a personal trainer, find a workout buddy, message other members and join gym social events.

Members open Personal Trainer and add a session with their trainer.

Workout module

Quick workouts, templates, a workout library, my body, history and journeys built around goals such as gain strength, cardio or build muscle, with a summary when a workout or a goal is done.

The workouts menu and workout journeys built around goals.

Admin portal

Machine setup with a QR code per machine, screen configuration, faulty machine and complaint handling, usage and performance reports, and content and promotions.

Gym admins add a branch with its admin, address and app or tablet setup.

Work on the live product

A program builder where admins set a goal, a duration and a day by day schedule for My Journey programs, which members pick and follow on a weekly calendar, each workout with its video, set logging and a mark complete, plus memberships gym admins manage, encrypted member ID numbers, expense tracking, Excel export, access control and Google Play compliance.

Super admins build a journey program by goal, length in weeks and a day by day schedule.

How it works

Configure

A branch admin sets up the machine, assigns a tablet to it and prints the machine's QR code.

Pair

A member signed in on the phone scans the code on the tablet, and both screens open the same machine.

Learn

The tablet plays the machine's how-to video and shows the muscles the exercise targets.

Log

Sets, reps and weights go into the member's workout record and history.

Report

Admins see machine usage and member performance, and handle faulty machine flags and complaints.

What changed

The product went from a written brief to a platform published on Google Play and the App Store, and it went into its first live trials at gyms. Members get guidance at the machine, gym networks run machines, content and members in one place, and new work keeps shipping into the live product.

Under the hood

Datics role
Product built by Datics
Real time sync
Web sockets keep the machine tablet and the member's phone on the same content after QR pairing, and auto logout records how long the machine was used.
Data and privacy
Members delete their own records and accounts after re-entering their password, admin profiles soft delete and restore, sign up needs email verification and member ID numbers are stored encrypted.
Deployment
AWS EC2 for the backend, Amazon S3 for the frontend and media, with thumbnails to keep media transfer down, AWS SES for email, a CI/CD pipeline and a separate dev server for QA cycles.
Store apps
The web app is wrapped for Google Play, with asset links that hide the browser bar, and for the App Store through TestFlight, with Google, Facebook and Apple sign in working inside both.

Cloud and infrastructure

AWS EC2AWS S3AWS SES

Apps and APIs

ReactNode.js

Also in the stack

Progressive Web AppWebSockets

How it shipped

  1. Requirements and Sprint 0

    A high level scope that went through five versions, user stories and UI prototypes came first, then a Sprint 0 proof of concept of QR pairing and a progressive web app.

  2. First release

    Admin consoles at three levels, machine setup and QR codes, machine-locked videos and animations, workout records, web socket sync and reports, deployed to a test server for QA.

  3. Change requests as a second phase

    Faulty machine handling, the trainer and workout modules, new members, workout buddies, gym socials, a redesigned dashboard, cardio flows and production readiness for both stores.

  4. Store launch and gym trials

    After a React Native proof of concept, the wrapped web app went live on Google Play and the App Store, with sign in with Apple added after a rejection, and the first gym trials started.

  5. Phase 3 on the live product

    Guided programs, memberships, encrypted member IDs, Excel export, access control and Google Play compliance, checked in QA sweeps for every role from super admin to member.

Requirements before code

Scope versions, user stories and UI prototypes came before development, and change requests were logged per review meeting, estimated and delivered as their own phase.

Sprints the client could watch

Sprints with daily scrums, QA cycles on a dev server and weekly demo videos kept the founder close to every change, before and after launch.

Launch work shared with the client

Inzer's product and technology lead joined our reviews, Inzer supplied the store policies and terms, and our designers produced the store screenshots, icons and intro video.

What this unlocked

Phase 3 keeps adding to the live product, and a workout plan feature for personal trainers and their clients is a candidate for what comes next.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review