Case Study · Health & Nutrition · iOS + Android + Admin

JoinBeet

Personalised meal plans built around real medical data. Users answer health questions once and the system handles the rest, matching recipes to their conditions, delivering fresh meals daily and syncing progress from their wearables.

JoinBeet overview
Meal selection
IndustryHealth & Wellness / Nutrition Tech
PlatformsiOS, Android, Web (Admin)
Timeline7 months
Year2026
The problem

Medical Meal Plans That Could Not Scale.

Patients with diabetes, kidney disease and post-surgery recovery need meals built around strict nutritional limits. Coordinating that manually between nutritionists, kitchens and delivery drivers meant errors, delays and a ceiling on how many people the service could reach. Solving it called for end-to-end full-stack development that ties every step together.

How JoinBeet works

Questionnaire. Meals. Doorstep.

01

Complete your health profile

Answer medical, physical and nutritional questions. The system maps your conditions, goals and restrictions to a personalised nutrition plan.

Complete your health profile
02

Meals are assigned automatically

A nightly algorithm matches recipes to your macros, allergens and meal plan tier. You can swap meals before the kitchen locks the day's prep.

Meals are assigned automatically
03

Fresh delivery to your door

Kitchen staff prep your meals with ingredient-level accuracy. Delivery workers bring them to your address in the time slot you chose.

Fresh delivery to your door
The mobile app

Everything Users Need in One Place

Health Overview
Health Overview
Measurements
Measurements
Meal Selection
Meal Selection
Community
Community
Daily Log
Daily Log
Articles
Articles
Sleep Data
Sleep Data
Wellness Shop
Wellness Shop
Platform features

Two Sides of the Same Platform

Health Questionnaire

Health Questionnaire

Medical, physical and nutritional screening that maps conditions and goals to personalised nutritional constraints.

Smart Meal Plans

Smart Meal Plans

Daily meals auto-assigned by a nightly algorithm matching macros, allergens and meal plan tiers. Swap with a tap.

Wearable Sync

Wearable Sync

Terra API connects Apple Watch, Fitbit and Garmin. Activity, sleep, heart rate and body metrics flow in automatically.

Progress Tracking

Progress Tracking

Daily mood logging, weight, blood glucose, blood pressure and measurements with visual trend charts.

Wellness Content

Wellness Content

Workout videos, yoga, physio exercises and health articles delivered through Cloudflare Streams.

Community

Community

Condition-based support groups for diabetes, pregnancy and general wellness with moderation.

The admin panel

Full Kitchen and Clinical Control

A Vue 3 admin panel with 6 role-based permission tiers. Kitchen managers prep meals from daily assignment views. Nutritionists manage user macros, Ramadan plans and nutrient limits. Admins track analytics across ingredients, recipes, conditions and delivery areas. Every action is logged in an audit trail.

Dashboard Analytics
Dashboard Analytics

Pie charts tracking most used ingredients, popular recipes, common conditions, active doctors and delivery coverage areas.

Dashboard Analytics
Meals Assignment
Meals Assignment

Weekly meal assignment view across plan types. Filter by date, assign recipes and track matched vs unassigned users.

Meals Assignment
Recipe Editor
Recipe Editor

Full recipe management with Arabic names, dietary tags, storage temps, portioning rules and nutritional profiles.

Recipe Editor
User Diet Management
User Diet Management

Per-user macro targets, Ramadan plan config, sodium/potassium/phosphate limits and monthly average tracking.

User Diet Management
Architecture

Flutter app backed by a Fastify API and Vue 3 admin panel

Mobile
Flutter 3.19BLoC StateTerra SDK
Backend
Fastify 4Node.jsTypeScript
Database
PostgreSQLMongoDBRedis
Admin & Web
Vue 3Cloudflare StreamsHesabe Payments
Challenges & Solutions

What We Solved Building JoinBeet

01

Multi-condition nutritional constraints

Challenge

The platform needed to serve users with drastically different nutritional requirements. Diabetes, gestational diabetes, chronic kidney disease, bariatric surgery recovery and pregnancy each have strict macro and micro-nutrient constraints. One system had to handle all of them without dietitian input for every single user.

Solution

We built a constraint-based meal assignment engine. Each medical condition maps to a set of nutritional rules. The nightly cron job uses bipartite matching to assign recipes that satisfy all active constraints for each user while maintaining variety across the week.

02

Automated meal matching at scale

Challenge

Nightly meal assignment had to automatically match recipes to hundreds of subscribers based on their medical tags, calorie targets, allergen restrictions and meal plan tier. Manual assignment was not scalable and any mismatch could have medical consequences.

Solution

The automated assignment pipeline runs as a nightly cron job with a bipartite matching algorithm. It resolves nutritional constraints, respects user preferences and allergen tags, ensures recipe variety and handles multiple meal plan tiers (3+2 snacks, 7 meals, Ramadan, bariatric) in a single pass.

03

Multi-role admin access control

Challenge

The admin panel had to serve multiple roles with completely different needs. Kitchen staff needed prep views and shopping lists. Nutritionists needed user health data and diet controls. Managers needed dashboards and audit logs. Each role required fine-grained permissions.

Solution

We implemented role-based access control with section-level permissions. Six distinct roles (admin, chef, doctor, kitchen manager, delivery worker, editor) each see only the sections relevant to their work. The Vue 3 admin panel dynamically renders navigation and controls based on the authenticated role.

04

Wearable data normalisation

Challenge

Wearable health data from dozens of device brands needed to flow into the app in near real-time. Sleep, activity, heart rate and body metrics had to be normalised from different data formats and displayed in meaningful charts for both users and their nutritionists.

Solution

Terra API handles the device abstraction layer. We pipe raw wearable data into MongoDB time-series collections, then transform and aggregate it for display. Our Flutter app development team used Syncfusion and fl_chart to render the dashboards. The architecture handles data from any Terra-supported device without per-brand integration work.

FAQ

Common Questions About Personalised Nutrition Platforms

A personalised nutrition platform typically costs between $120,000 and $300,000. A basic version with meal plans, user profiles and delivery scheduling starts near $120,000. A full build with medical questionnaires, automated meal assignment, wearable sync, admin panel with role-based access, bilingual support and payment processing lands between $200,000 and $300,000.

The system runs a nightly cron job that uses bipartite matching. Each user has a set of nutritional constraints based on their medical conditions and goals. Each recipe has a nutritional profile. The algorithm matches recipes to users so every meal falls within their calorie, macro and micro-nutrient targets while maintaining variety across the week.

Terra is a unified API that connects to hundreds of wearable devices and health apps. Instead of building separate integrations for Apple Watch, Fitbit, Garmin and others, Terra normalises the data into a single format. The app receives activity, sleep, heart rate and body metrics through one integration point.

Flutter's easy_localization package handles string translations for English and Arabic. RTL layout support is built into Flutter's widget system. The app detects the user's language preference and mirrors the entire UI including navigation, text alignment, date formats and number formatting.

Each staff member gets a role: admin, chef, doctor, kitchen manager, delivery worker or editor. Roles map to section-level permissions. A chef sees kitchen prep views and shopping lists but not user medical data. A doctor sees health profiles and lab results but not delivery logistics. The admin panel dynamically shows only the relevant sections.

A full nutrition platform with mobile app, admin panel, automated meal assignment and wearable integration takes 6 to 9 months. Expect 4 weeks of architecture and API design, 12 to 20 weeks of parallel mobile and admin development, 4 weeks of integration testing with real recipes and users and 2 weeks for store submission and deployment.

Yes. JoinBeet supports multiple concurrent meal plan tiers including 3 meals + 2 snacks, 7 small meals, Ramadan plans with Iftar and Suhoor timing and bariatric plans with specific portion controls. The meal assignment algorithm factors in the plan type alongside nutritional constraints when selecting recipes.

Each medical condition maps to a set of hard nutritional constraints. Diabetes users get carb-controlled meals. CKD users get potassium and phosphate limited meals. The algorithm treats these as hard constraints that cannot be violated. Nutritionists can override assignments through the admin panel and all changes are logged in the audit trail.

Building a health or nutrition platform?

We build full-stack health platforms with personalised meal assignment, wearable integration, admin panels and subscription billing. From concept to live users.