Consumer wellbeing
A quiet place to go
when your head is loud.
Otonia is a cozy interactive world for everyday stress, overthinking, racing thoughts and trouble winding down. A living Zen Garden, breathing and sound studios, a journal, a companion and twelve original mini games, tied together by a system that learns what actually helps a given person.
Otonia is not a therapist, a doctor, a diagnostic tool or a replacement for professional mental health care, and it makes no medical claims. That boundary is written into the product, not just the marketing.
The Zen Garden is drawn on the GPU with Skia, so the water, the koi and the light keep moving at sixty frames per second while the rest of the app carries on.
Wellbeing apps ask a lot
of someone who has nothing left.
The moment you actually need one of these apps is the moment you have the least patience for it. Most of them open with an account wall, a survey, a subscription prompt and a list of tasks. That is a lot to ask of someone who opened their phone because they could not sleep.
Make the first thirty seconds
feel like relief.
Build a place rather than a program. Somewhere that looks calm before it asks anything, where the interaction itself is the intervention, and where the app quietly learns which of its rooms actually work for you instead of asking you to rate your mood on a scale of one to ten.
What we built
Rooms, not features.
The world
- Zen Garden, a persistent scene that responds to time of day
- Atmosphere and Zen mode
- Twelve original mini games
- Explore, for finding a room that fits the moment
The quiet tools
- Calm Studio for breathing and grounding
- Soundscape mixing
- Journal with private entries
- Reflection and reading
The loop
- Companion conversations
- Daily check in
- Personalisation from what you actually return to
- A clear path to real help when it is needed
The gallery
More of the world.
The engineering
Calm is a performance problem.
An app that stutters does not feel calm, it feels broken. Every animated surface in Otonia is drawn with Skia and driven by Reanimated on the UI thread, so the world keeps moving even while JavaScript is busy doing something else.
Isolation is tested, not assumed
A journal entry is about as private as data gets. Row level security policies are applied to a real Postgres instance in the test suite and checked from another user's session, so isolation is a passing test rather than a promise.
It fails fast on purpose
The app refuses to start if required configuration is missing. A loud failure at launch is better than a quiet one later, in front of someone who came here to feel better.
Twelve games, no engine
Each mini game is hand built on Skia rather than dropped in from a game framework, which keeps the bundle small, the look consistent and the frame rate on the UI thread where it belongs.
The stack
What it is made of.
- React Native
- Expo and Expo Router
- TypeScript
- Zustand
- React Native Skia
- Reanimated
- Expo Audio
- Expo Blur
- Supabase Postgres
- Row level security
- Supabase Auth
- Secure Store
- Jest
- Migration and RLS suite
- ESLint flat config
- Typed database models
Consumer apps that feel considered.
If you have an idea that lives or dies on how it feels, we should talk.

