Skip to content

Toolset · TypeScript, Expo, TanStack Query

React Native

  • React Native
  • TypeScript
  • Expo

React Native shares a TypeScript codebase across platforms. Our stack leans on Expo for the toolchain, fast native storage, and server-state that stays honest about at-least-once and stale data.

Where two tools compete, the one marked our default is what we reach for.

01

Toolchain

2 tools
Expoour default

Managed toolchain, OTA updates, and a huge module set. Our default entry point for new apps.

The React Native bundler.

02

Navigation

2 tools
React Navigationour default

The standard navigation library — stacks, tabs, drawers. Our default.

File-based routing on top of React Navigation.

03

State & server state

3 tools
TanStack Queryour default

Server-state caching, invalidation, and background refetch — the honest way to manage remote data. Our default.

Zustandour default

Minimal client-state store; avoid persisting tenant-scoped data unscoped.

Structured global state for larger apps.

04

Local & secure storage

2 tools

Extremely fast key-value storage. Our default over AsyncStorage.

Keychain/Keystore-backed secure storage for tokens.

05

Animations

1 tool

UI-thread animations and gestures for 60fps interactions. Our default.

06

Testing

2 tools

Unit/component tests. Our default.

Grey-box end-to-end testing on device.

07

Monitoring & observability

3 tools
Sentryour default

Crashes, ANRs/hangs, performance, and release health for the JS and native layers together. Our default.

Firebase crash reporting via React Native Firebase; pairs well if you already use Firebase.

Desktop app for inspecting state, API calls, and logs during development.

08

CI/CD

4 tools

Expo's cloud build and store submission — signing and credentials managed for you. Our default.

CI for lint / typecheck / test on every push.

Over-the-air JS updates without a store release.

Store deploys for bare (non-Expo) workflows.

09

Linting & formatting

3 tools
ESLintour default

Linting with the React Native and typescript-eslint configs. Our default.

Prettierour default

Opinionated code formatting. Our default.

Type-checking as a CI gate — tsc --noEmit on every push.

Building on React Native?

We ship production React Nativewith exactly this stack. Tell us what you're building.

Start a conversation