About

Components you own,
not components you import.

Expo App UI was born from a simple frustration: every React Native UI library forces tradeoffs. You lose control, you fight defaults, you wait for upstream fixes. We took the shadcn/ui philosophy and brought it to React Native.

The mission

Most UI libraries treat components as black boxes. You install a package, import a component, and pray its API matches your needs. When it doesn’t, you’re stuck — styling overrides, refs into internals, opening upstream issues that may never get fixed.

Expo App UI inverts that. Run a CLI command, and the actual source code lands in your project. You can read it, edit it, ship it. There’s no runtime dependency, no version lock, no upstream to wait on.

The goal isn’t to be the biggest library — it’s to be the most useful one for serious Expo apps. Every component earns its place by being polished, performant, and easy to customize.

Principles

Code over abstractions

You should never have to fight a component library. We ship plain React Native code you can read, modify, and ship.

Built with care

Every component is hand-crafted, tested, and refined based on real-world Expo apps shipped to the App Store and Play Store.

Move fast, own it

The CLI gets you from zero to a styled component in 30 seconds. After that, the code is yours forever.

Who built this

Expo App UI is created and maintained by Krish Panchani, a React Native developer building production mobile apps. The project is supported by Thunder Develops, a studio crafting digital products for ambitious teams.

The library is open source under the MIT license. Contributions, issues, and feature requests are welcome on GitHub.