TL;DR: choose from app requirements, not library reputation
Use NativeWind when the team wants Tailwind-style utilities and its exact Expo/React Native setup passes the target-app test. Use Tamagui when shared web/native UI, tokens, and its optional compiler match the repository. Use gluestack UI when its universal component model fits the product and the team accepts its installation surface. Expo Router provides the routing foundation, but each UI stack has separate package, SDK, web, and build requirements.
This is a conditional selection. Build one representative screen, navigation flow, auth callback, and production build with the exact package and SDK versions before choosing.
Key Takeaways
- Expo Router documents file-based routing for Android, iOS, and web.
- NativeWind, Tamagui, and gluestack publish different installation and runtime contracts.
- npm latest reported Expo Router 57.0.16, NativeWind 4.2.6, Tamagui 2.7.7, and
@gluestack-ui/core5.0.15 on 2026-08-24. Before publication, recheck versions. - A package license does not establish the license of a template that happens to use it; unnamed starters require their own license check.
- We omit repository counters because they are volatile and not market share, quality, accessibility, or performance evidence.
- There is no reproducible cross-library benchmark receipt in this packet. Benchmark the target app.
At-a-glance comparison
| Decision factor | NativeWind | Tamagui | gluestack UI |
|---|---|---|---|
| Documented model | Tailwind-style cross-platform styling | Web/native UI system with tokens and optional compiler | Universal UI components and theming |
| What to validate | Tailwind and Expo compatibility, class transformation, web output | Compiler choice, token setup, shared-package boundaries | Package setup, component coverage, accessibility behavior in the app |
| Team fit | Teams already using utility classes | Teams building a shared design system | Teams starting from a component system |
| License evidence | npm package reports MIT | npm record lacks a declared license; repository reports MIT | npm package reports MIT |
| Performance decision | Measure the representative screen | Measure with the selected compiler/build setup | Measure the actual component set |
Expo Router is the shared routing layer
Expo Router documents file-based routing across Android, iOS, and web. That gives the comparison a common route model, but it does not make every styling stack or boilerplate interchangeable.
Before adopting a starter, verify:
- its Expo SDK and React Native versions;
- its Expo Router version and route conventions;
- its native module and build requirements;
- its web target and styling output;
- its auth callback and provider-specific deep-link setup;
- its EAS or native build configuration.
Use the exact package and SDK versions from the repository lockfile. A guide label such as “Expo starter” does not identify a dependency set.
NativeWind
NativeWind documents cross-platform Tailwind styling. It can reduce context switching for teams already using utility classes on the web, but compatibility still depends on the installed NativeWind, Tailwind, Expo, and React Native versions.
Validate a screen that includes typography, forms, lists, dark mode, platform-specific spacing, and web rendering. Include a release build rather than relying on a development preview. Treat the result as evidence for this application, not a library-wide benchmark.
The official npm record reported NativeWind 4.2.6 and an MIT package license at access time. That package license applies to the package. It does not transfer to a template, component pack, or commercial starter.
Tamagui
Tamagui documents a web/native UI system, tokens, and optional compiler optimization. That is a documented capability, not a measured performance result for the target app. The practical decision is whether its component and token model matches the team's design system and whether the chosen compiler path works in the actual monorepo and build targets.
The npm latest record reported Tamagui 2.7.7. That record did not declare a license, while the named Tamagui repository reported MIT. Record both identities in a license review rather than assuming one field speaks for every package or starter.
Run a canary that exercises shared components, responsive web behavior, themes, native navigation transitions, and production builds. Keep compiler changes isolated until the repository proves them.
gluestack UI
gluestack documents universal UI components and its own installation model. Evaluate the components needed by the product instead of assuming a feature count or accessibility outcome. Accessibility is a property of the rendered application, interaction design, labels, focus behavior, and testing—not a conclusion from a component-library description.
The npm latest record reported @gluestack-ui/core 5.0.15 with an MIT package license. A named repository or package can support a claim about its own API or license; it cannot prove that an unnamed starter includes a particular auth screen, dashboard, or feature bundle.
Framework and runtime matrix
| Surface to test | Why it can differ | Acceptance evidence |
|---|---|---|
| Expo SDK and React Native | Peer dependencies and native modules vary | Clean install plus native and web release builds |
| Styling and themes | Runtime, compiler, and token models differ | Representative screens across supported platforms |
| Authentication | Mobile redirects need provider-specific deep-link setup | Device callback test for every configured provider |
| Shared web/mobile code | Package boundaries and platform files vary | CI build for each target and typed imports from shared packages |
| Accessibility | Components need app-level labels, focus, and interaction review | Screen-reader and keyboard checks on supported targets |
| Performance | Device, build mode, list size, and interaction shape determine results | Reproducible target-app profile with raw output |
T3 Turbo as a named monorepo reference
create-t3-turbo is a named repository that can be inspected for its current structure. It is evidence for that repository only. Do not use its packages or repository activity to describe every Next.js-plus-Expo starter.
If a monorepo is required, inspect shared types, API code, UI packages, environment handling, native build configuration, and release ownership. A shared repository can improve locality, but it also couples upgrades across targets.
Package identities and licenses
Values accessed 2026-08-24:
| Package | npm latest | License evidence |
|---|---|---|
expo-router | 57.0.16 | npm reports MIT |
nativewind | 4.2.6 | npm reports MIT |
tamagui | 2.7.7 | npm record has no declared license; named repository reports MIT |
@gluestack-ui/core | 5.0.15 | npm reports MIT |
Recheck versions, peer dependencies, compatibility matrices, and Expo SDK requirements immediately before publication or installation. Unnamed starters require their own license check.
Performance evidence standard
The approved sources document APIs and product positioning, but there is no reproducible cross-library benchmark receipt. A useful comparison needs the device model, OS, Expo and React Native versions, build mode, screen implementation, list size, interaction path, warmup, samples, repetitions, profiler output, and raw data.
The final step is to benchmark the target app with the same screen and workload across candidates. Keep the canary code and profile output with the decision record.
Best fit cards
Choose NativeWind when
The team already uses utility classes, wants a familiar styling vocabulary, and the exact dependency set passes native and web builds.
Choose Tamagui when
The product needs a shared token and component system across native and web, and the team is prepared to own the compiler and configuration surface.
Choose gluestack UI when
The required component set matches its documented interface and app-level accessibility checks pass on the supported platforms.
Build from Expo Router directly when
The application has unusual UI or native requirements and a preassembled boilerplate would add more assumptions than useful code.
Methodology
This refresh uses Expo, Clerk, NativeWind, Tamagui, gluestack, npm registry, and named GitHub repository sources accessed 2026-08-24. It treats package versions, licenses, repository state, and capabilities as product-specific evidence. It removes unsupported rankings and performance claims.
Affiliate and data disclosure
StarterPick does not choose this UI stack from affiliate payouts or a private benchmark. Links are editorial references or internal navigation. Package and starter licenses remain separate checks.
Source notes
Sources accessed 2026-08-24:
- Expo Router introduction
- Expo authentication guide
- Clerk Expo quickstart
- NativeWind installation
- Tamagui introduction
- gluestack UI introduction
- Expo Router npm record
- NativeWind npm record
- Tamagui npm record
- gluestack core npm record
- T3 Turbo repository
Prices and plan names change. This guide uses package and license evidence rather than a pricing comparison.
