Nuxt and Vue provide the application and documentation foundation.
Case study
UI Thing
A Nuxt-native component system focused on editable code, practical APIs, and developer experience.

UI Thing
2024
The project
UI Thing is an open-source Nuxt component collection built for developers who want component code they can inspect, copy, adapt, and own. It grew out of the kind of Vue and Nuxt interface work I kept repeating across projects.
What I worked on
I created the project, shaped the component APIs, built the Nuxt and Vue implementation, documented the components, and continued maintaining the direction of the system.
- Designed and implemented Nuxt-native Vue components.
- Built the components around Reka UI primitives and Tailwind CSS.
- Documented component usage so developers can understand and adapt the code.
- Maintained the open-source project structure and public documentation site.
The system
Reka UI handles accessible primitive behavior for complex interface patterns.
Tailwind CSS keeps the component styling editable and close to the implementation.
TypeScript supports clearer component contracts and reusable project structure.
Decisions that mattered
Editable code over opaque installs
I wanted developers to understand the component implementation instead of treating it as a closed dependency, so the system is organized around practical code that can be brought into a Nuxt project and changed.
Use primitives for behavior
For interaction-heavy components, I used Reka UI primitives so the project could focus on composition, styling, and developer ergonomics without rebuilding accessibility behavior from scratch.
What shipped
- Built and published the UI Thing documentation experience.
- Implemented a reusable Nuxt component collection with Vue, TypeScript, Tailwind CSS, and Reka UI.
- Created an open-source project that supports my own work while giving other Nuxt developers practical examples to build from.
Looking back
UI Thing keeps reinforcing the value of clear component boundaries. The more a component system grows, the more important it becomes for APIs, docs, and implementation details to stay understandable.
Continue