MCPcopy Index your code
hub / github.com/clerk/clerk-expo-quickstart

github.com/clerk/clerk-expo-quickstart @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
36 symbols 102 edges 30 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
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.

Extension points exported contracts — how you extend this code

ProcessEnv (Interface)
(no doc)
JSOnlyQuickstart/env.d.ts
ProcessEnv (Interface)
(no doc)
NativeComponentQuickstart/env.d.ts
ProcessEnv (Interface)
(no doc)
JSWithNativeSignInQuickstart/env.d.ts
GoogleSignInButtonProps (Interface)
(no doc)
JSWithNativeSignInQuickstart/components/GoogleSignInButton.tsx

Core symbols most depended-on inside this repo

useThemeColor
called by 2
JSOnlyQuickstart/hooks/use-theme-color.ts
useThemeColor
called by 2
JSWithNativeSignInQuickstart/hooks/use-theme-color.ts
ThemedView
called by 0
JSOnlyQuickstart/components/themed-view.tsx
ThemedText
called by 0
JSOnlyQuickstart/components/themed-text.tsx
RootLayout
called by 0
JSOnlyQuickstart/app/_layout.tsx
Layout
called by 0
JSOnlyQuickstart/app/(home)/_layout.tsx
Page
called by 0
JSOnlyQuickstart/app/(home)/index.tsx
Page
called by 0
JSOnlyQuickstart/app/(auth)/sign-in.tsx

Shape

Function 32
Interface 4

Languages

TypeScript100%

Modules by API surface

JSWithNativeSignInQuickstart/components/GoogleSignInButton.tsx3 symbols
JSWithNativeSignInQuickstart/app/(auth)/sign-up.tsx3 symbols
JSWithNativeSignInQuickstart/app/(auth)/sign-in.tsx3 symbols
JSOnlyQuickstart/app/(auth)/sign-up.tsx3 symbols
JSOnlyQuickstart/app/(auth)/sign-in.tsx3 symbols
JSWithNativeSignInQuickstart/app/components/AppleSignInButton.tsx2 symbols
NativeComponentQuickstart/env.d.ts1 symbols
NativeComponentQuickstart/app/index.tsx1 symbols
NativeComponentQuickstart/app/_layout.tsx1 symbols
JSWithNativeSignInQuickstart/hooks/use-theme-color.ts1 symbols
JSWithNativeSignInQuickstart/env.d.ts1 symbols
JSWithNativeSignInQuickstart/components/themed-view.tsx1 symbols

For agents

$ claude mcp add clerk-expo-quickstart \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact