Introduction
Components
- Accordion
- Action Sheet
- Alert
- Alert Dialog
- Audio Player
- Audio Recorder
- Audio Waveform
- Avatar
- AvoidKeyboard
- Badge
- BottomSheet
- Button
- Camera
- Camera Preview
- Card
- Carousel
- Checkbox
- Collapsible
- Color Picker
- Combobox
- Date Picker
- File Picker
- Gallery
- Hello Wave
- Icon
- Image
- Input
- Input OTP
- Link
- MediaPicker
- Mode Toggle
- Onboarding
- ParallaxScrollView
- Picker
- Popover
- Progress
- Radio
- ScrollView
- SearchBar
- Separator
- Share
- Sheet
- Skeleton
- Spinner
- Switch
- Table
- Tabs
- Text
- Toast
- Toggle
- Video
- View
Charts
Quick Start with CLI (Recommended)
Get up and running with a complete authentication system in under 2 minutes:
pnpm dlx bna-ui convex
This single command will:
- β¨ Create a new Expo project with BNA UI
- π Set up Convex backend with authentication
- π Configure Google, Apple, email/password, and OTP auth
- π¨ Install pre-built authentication components
- βοΈ Generate environment configuration templates
- π§ Set up TypeScript configuration
- π± Configure platform-specific authentication flows
Post-Installation Setup
1. Configure Environment Variables
After installation, you should prepare the following environment variables:
# Google OAuth
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
# Apple Sign-In
AUTH_APPLE_ID=your-apple-service-id
AUTH_APPLE_SECRET=your-apple-private-key
# Email Provider (Resend)
AUTH_RESEND_KEY=your-resend-api-key
# App Configuration
EXPO_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
EXPO_URL=your-app-schema://
2. Set Up OAuth Providers
Google OAuth Setup
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google+ API
- Create OAuth 2.0 credentials:
Apple Sign-In Setup
- Go to Apple Developer Console
- Create a new App ID with Sign in with Apple capability
- Create a Services ID for web authentication
- Generate a private key for server-to-server authentication
3. Configure Email Provider
Set up Resend for email OTP:
- Sign up at Resend
- Verify your domain
- Generate an API key
- Add to your environment variables
4. Update App Configuration
Update your app.json
with proper scheme and bundle identifiers:
{
"expo": {
"scheme": "your-app-scheme",
"ios": {
"bundleIdentifier": "com.yourcompany.yourapp"
},
"android": {
"package": "com.yourcompany.yourapp"
}
}
}
Security Features
The starter includes enterprise-grade security:
- π Secure Token Storage - Platform-native secure storage (Keychain/Keystore)
- π Automatic Token Refresh - Seamless session management
- π‘οΈ CSRF Protection - Built-in cross-site request forgery protection
- β±οΈ Rate Limiting - Authentication attempt limiting
- β Input Validation - Client and server-side validation
- π JWT Security - Secure token handling with proper expiration
Deployment Ready
Your project comes configured for production deployment:
Convex Production
# Deploy to production
npx convex deploy --prod
# Set production environment variables
npx convex env set AUTH_GOOGLE_ID your-prod-google-id --prod
npx convex env set AUTH_RESEND_KEY your-prod-resend-key --prod
EAS Build Configuration
// eas.json (automatically generated)
{
"cli": {
"version": ">= 5.2.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"env": {
"EXPO_PUBLIC_CONVEX_URL": "https://your-prod-deployment.convex.cloud"
}
}
}
}
Next Steps
- Customize your authentication flow - Modify components and styling
- Add user profile features - Extend user data and profile management
- Implement protected routes - Secure your app's sensitive areas
- Add real-time features - Leverage Convex's real-time capabilities
- Deploy to production - Use EAS Build for app store deployment
Start building your authenticated mobile app in minutes with BNA UI & Convex! π
On This Page
Quick Start with CLI (Recommended)Post-Installation Setup1. Configure Environment Variables2. Set Up OAuth ProvidersGoogle OAuth SetupApple Sign-In Setup3. Configure Email Provider4. Update App ConfigurationSecurity FeaturesDeployment ReadyConvex ProductionEAS Build ConfigurationNext Steps