This repository is for developers who are struggling to use Gluestack UI and Nativewind in a monorepo setup applications.
A production-ready monorepo starter kit that combines the power of Gluestack UI with NativeWind (Tailwind CSS for React Native) in a well-structured monorepo architecture. Perfect for teams looking to build scalable applications with consistent design systems.
- React Native - Cross-platform mobile development
- React Native Web - Web support for React Native components
- Expo - Development platform and tools
- NativeWind
4.1.23- Tailwind CSS for React Native - Tailwind CSS
3.4.0- Utility-first CSS framework - Gluestack UI
3.0.10- Component library with design system
- pnpm
10.15.0- Fast, disk space efficient package manager - Turbo
2.5.6- High-performance build system - tsdown
0.15.2- TypeScript library bundler
- React Native Reanimated
3.19.0- Smooth animations - React Native SVG
15.12.0- SVG support - Lucide React Native
^0.544.0- Icon library - @gorhom/bottom-sheet
^5.2.6- Bottom sheet component
├── apps/
│ └── native/ # React Native Expo app
│ ├── src/
│ │ ├── demo/ # Component examples
│ │ └── App.tsx # Main app component
│ ├── assets/ # App assets
│ └── tailwind.config.js # Tailwind configuration
├── packages/
│ └── ui/ # Shared UI component library
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ └── blocks/ # Complex UI blocks
│ └── dist/ # Built components
└── pnpm-workspace.yaml # Workspace configuration
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- pnpm (v10.15.0 or higher)
git clone <your-repo-url>
cd gluestack-ui-nativewind-starter-kitpnpm installpnpm buildpnpm example:androidpnpm example:webThe UI package uses tsdown for building TypeScript components:
# Build the UI package
pnpm --filter=@repo/ui build
# Or build everything
pnpm build- Create your component in
packages/ui/src/components/ - Export it from the appropriate index file
- Run
pnpm buildto compile - Import and use in your app:
import { YourComponent } from '@repo/ui'
- Use NativeWind classes for styling
- Follow the established color system in
tailwind.config.js - Leverage Gluestack UI components as base components
- Use Tailwind Variants for component variants
The tailwind.config.js is pre-configured with:
- NativeWind preset
- Custom color system
- Component safelist for dynamic classes
- Monorepo content paths
Metro is configured to work with the monorepo structure and NativeWind.
This project is licensed under the ISC License - see the LICENSE file for details.
- Gluestack UI for the amazing component library
- NativeWind for bringing Tailwind to React Native
- Expo for the development platform
- Turbo for the monorepo build system
Happy coding! 🎉
Built with ❤️ for the community.