Case study

UI Thing

A Nuxt-native component system focused on editable code, practical APIs, and developer experience.

UI Thing documentation and component interface preview.

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

Nuxt and Vue provide the application and documentation foundation.

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.