About RitmoVida
Inspiration
RitmoVida started as a personal project to solve a real problem in my own life.
After being diagnosed with insulin resistance, I realized that managing my health required more than simply tracking my weight. I needed a way to understand how my body was changing over time, correlate those changes with my habits, and make better decisions about nutrition, exercise, and recovery.
Most health apps either lock your data into proprietary ecosystems or provide isolated metrics without meaningful context. I wanted a single place where I could own my data, understand it, and receive actionable guidance.
That became RitmoVida.
What I learned
Building RitmoVida taught me far more than implementing features.
On the technical side, I explored Bluetooth Low Energy communication, body composition algorithms, AI agents, real-time Laravel applications, Docker-based development, and designing a domain model that keeps business logic isolated from infrastructure.
More importantly, I learned that building health software requires balancing engineering with empathy. Numbers alone are rarely motivating. Presenting trends, explaining them, and helping users build sustainable habits is often more valuable than simply displaying measurements.
How I built it
RitmoVida is a modern full-stack Laravel application built around a domain-first architecture.
The application communicates directly with a Xiaomi Mi Body Composition Scale 2, either through Web Bluetooth or a small Python sidecar using bleak. Raw Bluetooth frames are sent to the backend, where a single authoritative decoder derives measurements such as BMI, body fat percentage, muscle mass, visceral fat, metabolic age, and other body composition metrics.
Those measurements are combined with manually logged activities, including meals, workouts, sleep, hydration, mood, and daily steps, creating a complete picture of the user's health over time.
An embedded AI coach, powered by Prism PHP and Tavily search, analyzes this historical data alongside current health knowledge to provide personalized coaching and weekly reports.
The project is built using:
- Laravel 13 (PHP 8.5)
- Livewire 3 + Volt
- Tailwind CSS v4 + Flux UI
- PostgreSQL 17
- Redis 7
- Docker
- Prism PHP
- Python (
bleak) for Bluetooth support
Challenges
The biggest challenge wasn't writing code. It was making multiple technologies work together reliably.
Bluetooth communication is inherently inconsistent across browsers and operating systems, so supporting both Web Bluetooth and a Python bridge while guaranteeing identical results required careful architectural decisions.
Another challenge was ensuring that all calculations happen on the server. Regardless of how measurements are captured, there is only one decoding and calculation pipeline, keeping every result deterministic and reproducible.
Finally, designing an AI coach that feels useful instead of gimmicky required treating it as another domain service rather than a chatbot. It reasons over the user's own data first, supplements it with trusted external knowledge when needed, and always keeps the human in control.
Looking forward
RitmoVida is still evolving.
Future work includes richer trend analysis, wearable integrations, advanced nutritional insights, predictive health indicators, and additional AI capabilities that help transform raw measurements into practical, sustainable lifestyle recommendations.
The long-term vision is simple:
Help people understand their health through their own data, not just collect it.
Log in or sign up for Devpost to join the conversation.