Nutri Suite
Multi-tenant SaaS for nutrition practices: clinical records, appointments, meal plans and a per-professional online store.
- Role
- End-to-end full-stack development
- Year
- 2025
- Status
- In production
- Client
- Own product
- Multi-tenant
- strict isolation
- EHR
- digital clinical records
- E-commerce
- built in per centre
- Refactor
- from Pilates to Nutrition
Overview
Nutri Suite lets multiple nutrition centres operate independently on a single platform. Each centre signs up, gets its own public landing page, customises its brand and manages its whole business: practitioners, patients, appointments, clinical records, meal plans, product sales and payments.
Context
The problem
Nutrition practices keep clinical records on paper or in loose documents, scheduling over WhatsApp and payments by hand. There is no continuity between the consultation, the meal plan handed over and the patient's follow-up.
The solution
A platform where the consultation, the plan and the follow-up live in the same place, with a self-service portal for the patient and a built-in online store so each professional can sell their products.
What it does
Clinical records and consultation notes
A dedicated domain model for the clinical record, with per-consultation notes and traceability of the patient's progress.
Patient self-service portal
Patients access their appointments, meal plan and follow-up without depending on the practitioner.
Online store per centre
Each professional gets a built-in mini e-commerce, with payments through Mercado Pago.
Per-tenant branding
Public landing page at /c/:slug with each centre's own logo and colour palette.
Technical decisions
- 01
A vertical refactor, not a new product
The project started as a management system for a Pilates studio and was refactored into a multi-tenant SaaS for the nutrition sector. The domain model was rewritten — clinical records, notes, plans, e-commerce — reusing the tenancy, auth and payments infrastructure already proven in production.
- 02
Strict per-tenant isolation
Each centre operates on completely separate data, with validation in the access layer and a global whitelist in the ValidationPipe.
- 03
PostgreSQL with pgvector
The database runs on the pgvector/pgvector:pg14 image, leaving the infrastructure ready for semantic search over clinical and meal-plan content.
Stack
Backend
- NestJS 9
- Node.js 20
- TypeScript
- Monorepo nest-cli
- Webpack + HMR
Data
- PostgreSQL 14
- pgvector
- TypeORM 0.3
- Migraciones versionadas
Auth
- JWT
- Passport (local + JWT)
- bcrypt
- class-validator
- ValidationPipe global
Frontend
- Angular
- TypeScript
Infra
- PostgreSQL (Neon)
- Netlify
- Interserver
- Mercado Pago
Next project