JoinBeet builds personalised meal plans 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. It is a full platform: two mobile apps, a clinical and kitchen admin panel, and the engine that ties medical rules to the meals that actually arrive at someone's door.


Patients with diabetes, kidney disease or post-surgery recovery need meals built around strict nutritional limits, and getting those limits wrong is not a minor inconvenience. Coordinating all of that by hand, between nutritionists, kitchens and delivery drivers, meant errors, delays and a hard ceiling on how many people the service could ever reach. The whole point of JoinBeet was to remove that ceiling without removing the medical rigour.
Users answer medical, physical and nutritional questions, and the system maps their conditions, goals and restrictions to a personalised nutrition plan. The hard work of translating a medical situation into nutritional rules happens once, up front, rather than for every meal.

A nightly algorithm matches recipes to each user's macros, allergens and meal plan tier, and users can swap meals before the kitchen locks the day's prep. What used to take a nutritionist per person now happens automatically, every night, for everyone at once.

Kitchen staff prepare the meals with ingredient-level accuracy, and delivery workers bring them to the user's address in the time slot they chose. The loop runs all the way from a medical profile to food on the table, without a person manually stitching the steps together.









Medical, physical and nutritional screening maps a user's conditions and goals to their personalised nutritional constraints. This is the foundation everything else is built on, because the meals are only as safe as the profile behind them.
Daily meals are auto-assigned by a nightly algorithm that matches macros, allergens and meal plan tiers, and users can swap a meal with a tap. Personalisation at this scale is only possible because the matching is automated rather than manual.
The Terra API connects Apple Watch, Fitbit and Garmin, so activity, sleep, heart rate and body metrics flow in automatically. The plan responds to how someone is actually living, not just what they declared at sign-up.
Daily mood logging, weight, blood glucose, blood pressure and measurements are tracked with visual trend charts, so users and their nutritionists can both see how things are moving over time rather than guessing.
Workout videos, yoga, physiotherapy exercises and health articles are delivered through Cloudflare Streams, so the platform supports the whole health picture, not just the meals.
Condition-based support groups for diabetes, pregnancy and general wellness, with moderation, give users people who understand their situation, which is often as important to sticking with a plan as the food itself.
A Vue 3 admin panel with six role-based permission tiers runs the operation. Kitchen managers prepare meals from daily assignment views, nutritionists manage user macros, Ramadan plans and nutrient limits, and admins track analytics across ingredients, recipes, conditions and delivery areas, with every action recorded in an audit trail.

Charts track the most used ingredients, popular recipes, common conditions, active doctors and delivery coverage areas, so the team can see how the whole operation is behaving at a glance.

A weekly meal assignment view across plan types lets staff filter by date, assign recipes and track matched against unassigned users, so nobody falls through the cracks before the kitchen locks prep.

Full recipe management covers Arabic names, dietary tags, storage temperatures, portioning rules and nutritional profiles, so each recipe carries everything the matching engine and the kitchen need to use it safely.

Per-user macro targets, Ramadan plan configuration, sodium, potassium and phosphate limits and monthly average tracking give nutritionists fine clinical control over each individual's plan.
The platform had to serve users with drastically different nutritional requirements. Diabetes, gestational diabetes, chronic kidney disease, bariatric surgery recovery and pregnancy each carry strict macro and micro-nutrient constraints, and one system had to handle all of them without a dietitian configuring every single user by hand.
We built a constraint-based meal assignment engine. Each medical condition maps to a set of nutritional rules, and a nightly job uses bipartite matching to assign recipes that satisfy all of a user's active constraints while keeping variety across the week. The medical rigour is encoded once and applied consistently to everyone.
Nightly assignment had to match recipes to hundreds of subscribers based on their medical tags, calorie targets, allergen restrictions and meal plan tier. Manual assignment simply did not scale, and any mismatch could have medical consequences, so getting this right was non-negotiable.
The automated pipeline runs as a nightly cron job with a bipartite matching algorithm. In a single pass it resolves nutritional constraints, respects preferences and allergen tags, ensures recipe variety, and handles multiple meal plan tiers, including snack-based plans, seven-meal plans, Ramadan and bariatric. What was a manual bottleneck became a dependable nightly process.
The admin panel had to serve roles with completely different needs. Kitchen staff needed prep views and shopping lists, nutritionists needed user health data and diet controls, and managers needed dashboards and audit logs, each requiring fine-grained permissions rather than blanket access.
We implemented role-based access control with section-level permissions. Six distinct roles, admin, chef, doctor, kitchen manager, delivery worker and editor, each see only the sections relevant to their work, and the Vue 3 panel renders navigation and controls dynamically based on the authenticated role. Everyone gets exactly the tools they need and nothing they should not see.
Wearable health data from dozens of device brands had to flow into the app in near real time. Sleep, activity, heart rate and body metrics arrive in different formats from different devices, and all of it had to be normalised and shown in meaningful charts for both users and their nutritionists.
The Terra API handles the device abstraction layer, and we pipe the raw wearable data into MongoDB time-series collections, then transform and aggregate it for display. The charts render through dedicated charting libraries, and the architecture handles data from any Terra-supported device without per-brand integration work, so adding a new device is not a new project.
It depends heavily on scope, but a full platform like JoinBeet, with mobile apps, an admin panel, automated medical meal matching, wearable integration and payments, typically runs from around EUR 60,000 upwards. A focused first version costs less. We give a fixed estimate after a discovery call, often starting smaller and scaling up.
Each medical condition maps to a set of nutritional rules, and a nightly job uses a matching algorithm to assign recipes that satisfy all of a user's active constraints while keeping variety. It respects calorie targets, allergens and the meal plan tier, so hundreds of personalised, medically appropriate plans are produced automatically each night rather than by hand.
Terra is an abstraction layer that connects many wearable brands, such as Apple Watch, Fitbit and Garmin, through one integration. In JoinBeet, raw data flows into time-series storage and is transformed for display, so activity, sleep, heart rate and body metrics appear in clear charts, and adding a new supported device needs no per-brand work.
By designing for it from the start. JoinBeet handles content such as Arabic recipe names alongside English, with layouts built to work correctly in both left-to-right and right-to-left directions. Building bilingual and RTL support in early, rather than retrofitting it, is what makes the experience feel native in each language.
It means each staff member sees only what their job needs. In JoinBeet, six roles, admin, chef, doctor, kitchen manager, delivery worker and editor, each get section-level permissions, and the panel renders navigation and controls based on who is logged in. Kitchen staff see prep views, nutritionists see clinical controls, managers see analytics and audit logs.
A full platform like JoinBeet took around seven months, given the mobile apps, the admin panel, the matching engine and the integrations. A smaller first version is faster. We work in two-week sprints with working software throughout, so a large build like this still shows steady, visible progress.
Yes. JoinBeet's assignment engine handles multiple meal plan tiers in a single pass, including snack-based plans, seven-meal plans, Ramadan plans and bariatric plans, each with its own rules. The engine is built around flexible constraints, so new plan types can be added without rebuilding the core matching logic.
By encoding the medical rules into the engine and applying them consistently. Each condition maps to strict nutritional constraints, the matching algorithm only assigns recipes that satisfy all of a user's active constraints, and nutritionists retain fine control over limits such as sodium, potassium and phosphate. Safety comes from the rules being enforced automatically rather than relied on by memory.
We build full-stack health platforms with personalised meal assignment, wearable integration, admin panels and subscription billing, from concept to live users. If you are planning something like JoinBeet, tell us about it and a senior engineer will reply within one business day with an honest view of what it would take.