← Back to MVPs
React NativeOpen Source

payez-react-native-mvp

Native mobile auth, biometrics, and RBAC — same IDP, same users, same roles.

Your mobile app shares the same user base as your web app. One identity platform. Two surfaces.

git clone payez-react-native-mvp
Start FreeGitHub

Mobile-native auth, done right

Not a WebView wrapper. Not a browser redirect. Native authentication with platform keychain storage, biometrics, and transparent token management.

Zustand Auth + Persistence

Lightweight state management with encrypted async storage. Session state survives app restarts and backgrounding.

Biometric Support

Face ID, Touch ID, fingerprint — native biometric authentication as a 2FA step or session unlock.

Automatic Token Refresh

401 retry with transparent token refresh. No auth-related crashes, no manual token lifecycle code.

Deep Linking + Pending Auth

Handle OAuth callbacks, magic links, and password resets via deep links — even if the app was closed.

2FA with Masked Contacts

SMS, email, and TOTP 2FA with masked contact display. The user sees "j***@e***.com" — never the full address.

Shared User Base

Same IDP, same users, same roles, same sessions as your web app. A user logs in on mobile and their web session knows.

4 steps to a running app

Clone, configure, run. The template is a complete app — not a library you wire up.

1
git clone payez-react-native-mvp

Clone the template repository. It's a full React Native app, not a library.

2
Set env vars

VIBE_API_URL, VIBE_CLIENT_ID, VIBE_CLIENT_SECRET in .env

3
Configure OAuth redirect

Add your app's deep link scheme to the IDP tenant settings.

4
npx expo start

Login screen, biometric prompt, session persistence — running on your device.

Everything that's already built

The template includes production-ready screens, navigation, and auth flows. You add your app's features on top.

✓

Login & Signup Screens

Pre-built, themed screens for email/password and social login. Customizable but functional immediately.

✓

OAuth Flow

Native browser-based OAuth via the IDP. Google, GitHub, or any provider configured on your tenant. No WebView hacks.

✓

Session Management

Token storage, refresh lifecycle, concurrent session awareness. Your app never shows a stale session.

✓

Role-Aware Navigation

Tab bars and drawers that show/hide based on the user's roles. Admin sees admin tabs. Members see member tabs.

✓

Theme System

Light/dark mode matching the system preference or user choice. Synced to the same Redis store as your web app.

✓

Error Boundaries

Graceful error handling at the navigation level. Auth failures route to login, not crash screens.

✓

Secure Storage

Tokens and sensitive data stored in the platform keychain (iOS Keychain / Android Keystore). Not AsyncStorage.

✓

Push Token Registration

Register device push tokens against the user's session. Ready for your notification backend.

One identity. Web + Mobile.

Your React Native app connects to the same idp.payez.net tenant as your Next.js web app. Same users table. Same roles. Same sessions table (so you can see all active sessions — web and mobile — in one admin panel). Same custom schemas, same Vibe API.

@payez/next-mvp
Web app
Same users, roles, sessions
payez-react-native-mvp
Mobile app
Same users, roles, sessions

Your data on mobile

The same custom schemas you define for your web app are accessible from your mobile app via the Vibe API. Auth is handled automatically — the mobile SDK attaches the session token to every request.

Build CRUD screens for your custom tables without touching auth, token refresh, or session logic. The SDK handles 401 retries transparently.

VibeSQL docs →
// React Native — fetch custom schema data
// Auth token attached automatically by the SDK

const resumes = await vibeApi.query(
  'ideal_resume',
  'resumes',
  { user_id: session.userId }
);

// Same table, same data as your web app
// The user's identity is inherited from vibe_app.users

What's under the hood

React Native
Expo + bare workflow support
Zustand
Auth state + encrypted persistence
Expo SecureStore
Platform keychain for tokens
Expo LocalAuth
Face ID, Touch ID, fingerprint
Expo Linking
Deep links + OAuth callbacks
VibeSQL
Same PostgreSQL API as web
TypeScript
End-to-end type safety
React Navigation
Role-aware tab + stack nav

Clone and start building

Same identity as your web app. Biometrics, deep linking, secure storage — already wired. 10K MAU free. No credit card required.