Skip to main content
Back to portfolio

Zeno Fitness and Habit Platform

Production mobile-app backend and demo frontend for an AI fitness, nutrition, and habit platform, with generated programmes gated on a confidence threshold.

Challenge pressure

AI-generated training and nutrition programmes reach a real body, so a low-confidence generation cannot be allowed to ship.

The situation

Progressive-overload programming and calorie targets are advice a person acts on physically. A general-purpose generator is acceptable when the output is a draft; it is not when the output is next week of training.

What we built

A NestJS backend on MikroORM over PostgreSQL on AWS RDS, with domain-driven modules per vertical covering strength, nutrition, meditation, breathwork, and fasting. Multi-provider routing spans Claude 3 Haiku, OpenAI, and Gemini. Firebase JWT handles authentication, Pro-tier gating controls access, AWS SQS carries event-driven processing, and Jest with supertest covers the suites. The demo frontend is Next.js 16 and React 19 on Tailwind 4, deployed to Vercel.

What changed

Generated programmes are held behind an 85% confidence threshold before they reach a user.

Constraints and decisions

The confidence gate is the product decision that shaped the architecture: generation had to be separable from delivery so a low-confidence result could be withheld rather than shown with a caveat. Routing across three providers exists to keep that threshold reachable at an acceptable cost per generation.

Measured outcomes

85% confidence threshold gating AI-generated programmes

Domain modules per vertical across strength, nutrition, meditation, breathwork, and fasting

Multi-provider routing across Claude 3 Haiku, OpenAI, and Gemini

Technology stack

NestJSMikroORMPostgreSQLAWS RDSAWS SQSFirebase AuthNext.js 16Vercel

Delivery fit

Designed for Zeno where AI Agents needed to feel like a dependable operating system, not a fragile prototype.

Need a similar system?

If this case study maps to your current workflow, the next useful step is a scoped project conversation with constraints, timeline, and integration needs.