gluestack-ui

A CLI that adds accessible, Tailwind-styled universal components straight into React & React Native codebases

Tool
npm
v5.0.3
5,251stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
86/100Excellent
Development Activity92
Maintenance100
Community60
Maturity52
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
77/100Good
Architecture78
Code Quality74
Innovation80
Learning Curve76

gluestack-ui is a universal component system for React, React Native, Next.js, and Expo, styled with Tailwind CSS via NativeWind. Rather than installing a component library as an opaque dependency, its CLI copies component source directly into your project — the same shadcn-style model — so you own and can modify the code, get full TypeScript types, and avoid version-lock on a third-party package.

The monorepo hosts dozens of individual @gluestack-ui/* primitive packages (button, input, overlay, toast, form-control, icon, and more) that the CLI composes into ready-to-use, accessible components spanning web and native platforms from one codebase.

What You Get

  • A CLI (init, add, upgrade) that scaffolds and copies component source into Next.js, Expo, or React Native projects
  • Universal components that render consistently across web, iOS, and Android from a single codebase
  • NativeWind/Tailwind-based styling so components integrate with existing Tailwind design tokens
  • Accessibility-first primitives (focus management, ARIA roles, keyboard navigation) built on top of Radix-inspired headless patterns
  • Dozens of composable @gluestack-ui/* packages (button, form-control, icon, input, overlay, toast, etc.) usable individually or via the CLI

Common Use Cases

  • Bootstrapping a cross-platform design system that shares component code between a Next.js web app and an Expo mobile app
  • Adding accessible, pre-styled components (buttons, forms, modals, toasts) to a project without pulling in a black-box UI library
  • Customizing component internals directly since the CLI copies source into your repo instead of hiding it in node_modules
  • Building React Native apps that need Tailwind-consistent styling shared with a companion web codebase

Under The Hood

Architecture: The gluestack-ui monorepo hosts the CLI package (packages/gluestack-ui) alongside dozens of individual primitive packages under packages/@gluestack-ui/* (button, input, overlay, toast, etc.); the CLI’s src/commands/{init,add,upgrade}.ts scaffold NativeWind/Tailwind config into a target Next.js/Expo/React Native project and then copy selected component source from a component registry, while src/util/config/* handles framework-specific setup differences. Tech Stack: TypeScript throughout, built on React and React Native with NativeWind (Tailwind CSS for React Native) for styling, Yarn workspaces for monorepo management, and Jest configured for unit tests. Code Quality: The CLI package includes a __tests__ directory and jest.config.js, though as a copy-paste distribution model most component-level correctness is validated in the example apps/ rather than exhaustive CLI unit tests; the project sees very active, frequent commits and releases. API Design: The npx gluestack-ui init / add <component> workflow mirrors the now-familiar shadcn CLI pattern, minimizing setup friction, though the copy-paste model means upgrades require the CLI’s upgrade command to reconcile local edits rather than a simple version bump.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search