How Limestone compares.

Honest comparison with popular React Native UI libraries.

Feature Limestone React Native Paper NativeBase Tamagui Gluestack UI
Architecture Hexagonal (ports + adapters) Material Design 3 Utility-first Compiler-based Design tokens
Vendor lock-in None Paper/MD3 None None None
Headless hooks Yes (pure functions) No No No No
Theme engine Zod-validated tokens MD3 theme ThemeProvider createTamagui GluestackProvider
Component count 36+ (growing) 40+ 30+ 70+ 30+
Native feature ports 16 typed interfaces 0 0 0 0
Expo adapters 15 blessed 0 Partial Partial Partial
API client Built-in (auth, offline, retry) None None None None
Form engine Zod-backed useForm None None None None
Testing createTestApp, in-memory everything jest + RNTL jest + RNTL jest + RNTL jest + RNTL
LLM-first CLAUDE.md, llms.txt None None None None
Dev mode One import swap No equivalent No equivalent No equivalent No equivalent
Hard dependencies 1 (zod) 3+ 5+ 2+ 3+

The key difference

Limestone defines typed contracts for every native capability — not just theming and components, but biometrics, camera, secure storage, haptics, notifications, purchases, permissions, location, and more.

Each contract has a blessed Expo adapter and an in-memory test double. Your app logic depends only on interfaces. Swap any adapter and the core still compiles.

Other libraries give you styled components. Limestone gives you the full mobile toolkit — theme engine, API client, form system, testing infrastructure, and 16 native ports — with the freedom to change every infrastructure decision later.

Try Limestone