About ra-ui
An open-source React Native component library inspired by shadcn/ui. Copy-paste components directly into your project with a single CLI command.
Our Mission
React Native development should be fast and simple. We built ra-ui so developers can spend less time building basic UI and more time building great products. Every component is designed to be production-ready, fully typed, and completely dependency-free.
47+
Components
0
Dependencies
100%
TypeScript
Free
Forever
Why ra-ui?
No Dependencies
Every component uses only React Native core primitives — Pressable, View, Text, StyleSheet. Nothing else to install.
Full Ownership
Components are copied into your project. You own every line. Edit, extend, or rewrite — no lock-in.
One Command
Run npx ra-ui add button and the component is in your project. No init, no config, no setup.
Free Forever
Powered by jsDelivr CDN with auto-purge on every push. No rate limits, no cost, no catch.
Consistent Design
All components follow the same color palette, spacing system, and interaction patterns from a real production app.
Built for RN
Not a web port. Every component is built specifically for React Native with proper mobile patterns.
How it works
Components live on GitHub
All component .tsx files are stored in a public GitHub repo with a registry.json that lists metadata.
CDN serves them globally
jsDelivr mirrors the repo to 200+ edge servers worldwide. Cache auto-purges on every push via GitHub Actions.
CLI fetches and copies
The ra-ui CLI reads the registry, downloads the file, and writes it directly into your project folder.
You own the code
The component is now a regular file in your project. No runtime dependency on ra-ui. Edit it however you want.
Architecture
Your Terminal GitHub Repo jsDelivr CDN
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ npx ra-ui │────>│ registry.json │────>│ Cached copy │
│ add button │ │ components/ │ │ 200+ servers │
│ │<────│ button.tsx │<────│ worldwide │
└──────┬───────┘ └──────────────────┘ └──────────────┘
│
▼ writes file
┌──────────────┐
│ Your Project │
│ src/ │
│ components/ │
│ ui/ │
│ button.tsx│ ← you own this
└──────────────┘Tech Stack
CLI
Node.js + Commander
CDN
jsDelivr (unlimited)
Registry
GitHub public repo
Components
React Native + TS
Website
Next.js + Tailwind
CI/CD
GitHub Actions
Contributing
Want to add a new component? Four simple steps:
Fork the repo
Fork ranjeet-zet/ra-ui-registry on GitHub
Add your component
Create a .tsx file in components/ folder
Update registry
Add entry to registry.json with metadata
Open a PR
Submit a pull request and we'll review it