clerk
clerk-expo-quickstart
TypeScript

The official companion repo for Clerk's Expo Quickstart

Last updated Jun 10, 2026
51
Stars
15
Forks
7
Issues
0
Stars/day
Attention Score
47
Language breakdown
No language data available.
โ–ธ Files click to expand
README

Clerk + Expo Quickstarts

This repository contains three quickstart apps demonstrating different ways to integrate Clerk authentication with Expo.

| Quickstart | Auth UI | OAuth | Expo Go | Dev Build | |---|---|---|---|---| | JS Only | Custom (React Native) | No | Yes | Yes | | JS + Native Sign-In | Custom (React Native) | Apple, Google | No | Yes | | Native Components | Native (Clerk SDK) | Apple, Google | No | Yes |

Getting Started

Each quickstart is a standalone Expo project in its own directory. To run one:

cd JSOnlyQuickstart   # or JSWithNativeSignInQuickstart, NativeComponentQuickstart

cp .env.example .env

Edit .env and add your Clerk publishable key

pnpm install

You can find your publishable key in the Clerk Dashboard.

JS Only

Directory: JSOnlyQuickstart/

The simplest integration. Uses @clerk/expo hooks (useSignIn, useSignUp) with custom React Native sign-in and sign-up screens. Email/password authentication only.

Works with Expo Go -- no native build required.

cd JSOnlyQuickstart
npx expo start

JS + Native Sign-In

Directory: JSWithNativeSignInQuickstart/

Extends the JS-only approach with native OAuth buttons for Apple Sign-In (iOS) and Google Sign-In (iOS + Android). Still uses custom React Native screens for the email/password flow.

Requires a development build (native OAuth modules don't work in Expo Go).

cd JSWithNativeSignInQuickstart
npx expo run:ios     # or run:android

Additional environment variables are needed for OAuth -- see JSWithNativeSignInQuickstart/.env.example.

Native Components

Directory: NativeComponentQuickstart/

Uses Clerk's native UI components (AuthView, UserProfileView, UserButton) from @clerk/expo/native. AuthView and UserProfileView render inline in your React Native hierarchy, so the app owns whether they appear in a route, sheet, or Modal. UserButton renders the native avatar button and opens the native user profile when tapped.

Requires a development build.

cd NativeComponentQuickstart
npx expo run:ios     # or run:android

Additional environment variables are needed -- see NativeComponentQuickstart/.env.example.

Learn More

Support

Contact or email support@clerk.com us for support.

ยฉ 2026 GitRepoTrend ยท clerk/clerk-expo-quickstart ยท Updated daily from GitHub