Onboarding
The full welcome flow, Bluetooth pairing included, with the paywall moved after the first session.
I designed Odisei Play for 17 months. Then I moved into the codebase and shipped the screens myself, on web, iOS and Android.

For 17 months I drew screens in Figma, and a developer rebuilt them in code. That handoff is where the product lost quality.
Once in Figma, once again in code.
Gradients, SVG effects, textures: dropped weeks later, when the framework said no.
Every review round cost two people a day. There was always another one.
Same repo, same stack, same code reviews as the developers. And I already knew every screen by heart.
Web, phone and tablet, from the same code.
React Native, ExpoType, colours and spacing from one source.
NativeWind, tokensCelebrations, the wheel, the playing views.
Reanimated, SkiaBranches, pull requests, reviewed by the lead dev.
Git, code reviewRaised buttons, carved text, neon glow, right on every device.
Odisei’s signatureThe repo was set up for AI agents. I built every piece in Storybook first, and the CI checked it everywhere.
The rule


A mistake caught once becomes a rule Claude Code follows from then on.

Seven files out of ten were that shared library, the one every screen is built from.
The full welcome flow, Bluetooth pairing included, with the paywall moved after the first session.
Rebuilt from one giant file into sixty reusable blocks.
Streaks, goals, badges, and animated celebration screens in portrait and landscape.
Haptics and sound synced to how fast the wheel really turns.
Course pages outside the app, so people find Odisei through search.
If something close exists, I extend it instead of writing it again.
No value typed by hand, so screens can’t drift apart.
Developers plug in a finished, reviewed piece. They rebuild nothing.
One person, one build, no correction loop. Your developers get their week back, and your users see the design you agreed on.
One person, from the first sketch to the shipped screen.