Challenge
Shipping two mobile products means building the same thirty components twice — and getting them subtly different both times. The usual fix is an internal components folder, which works until it doesn't: undocumented, untested, impossible to version, and quietly rotting.
The alternative — adopting an off-the-shelf library — usually means inheriting someone else's design language and fighting their styling model every time the brand needs something specific.
Approach
A property-based API, not a styling free-for-all
Components are configured through explicit props rather than ad-hoc style overrides. Consistency becomes the default and deviation becomes visible — which is the entire point of a design system.
Configurable without forking
A configuration entry point lets a consuming app register its own icon set, theme, and path aliases. The system adapts to the product's brand, instead of the product bending to the system.
Tested like a product, not a side project
Around 97 test files. A design system that breaks its consumers silently is worse than no design system at all.
Dogfooded in production
VetAsist's mobile app runs on it. Every rough edge shows up in our own product before it reaches anyone else's.
A formal feedback loop between consumer and library
When integrating into VetAsist surfaced runtime bugs and DX gaps, they weren't patched ad hoc — they were written up as a prioritised P1–P3 handoff document, each item carrying the affected file, a reproduction, and a recommended fix. That discipline drove a fast release cadence: 0.2.0 to 0.6.0 in a matter of weeks.
Built on the current React Native stack
Reanimated 4, FlashList, keyboard-controller, edge-to-edge, SVG transformer — tracking the ecosystem rather than freezing on an old baseline.
Results
- Published on npm as @tansuk/rott-ui under the MIT licence — 15 releases, currently v0.8.0.
- 29 component families plus theming, hooks, providers, and a configuration API.
- Around 97 test files.
- 164 commits since July 2025, actively maintained.
- Powers VetAsist's mobile app in production.
Technologies Used
Verify it yourself
We would rather you checked than took our word for it. Everything below is public and live.
Have a project like this?
Tell us what you are building. We reply personally, within 24 hours.
Start a conversation