Skip to content

Latest commit

 

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expo     Firebase

Expo Firebase Template

License: MIT Expo SDK TypeScript Template

Production-ready Expo + React Native + Firebase starter for shipping real apps — not demos.

Auth (email, Google, Apple, SMS OTP, Android PNV), Firestore with offline persistence, Storage, Cloud Functions, App Check, push notifications, EAS Build & Update, React Compiler, and agent-friendly skills/docs.

Requires a development build. React Native Firebase does not run in Expo Go.

Author: Adhham · License: MIT


Create from the terminal

npx create-expo-app@latest my-app --template https://github.com/adhhamdev/expo-firebase-template
cd my-app && bun install
bun run skills:install   # Expo + Firebase + Vercel RN + Callstack agent skills

Also: bun create expo, pnpm / yarn create expo-app, Use this template, or gh repo create … --template adhhamdev/expo-firebase-template.


Quick start

bun install
bun run skills:install
cp .env.example .env
# 1) Set identity in app.config.ts (APP_NAME, PACKAGE_NAME, …)
# 2) Same PACKAGE_NAME in scripts/sync-firebase-native-configs.mjs
firebase use <your-project-id>
bun run firebase:sync          # writes ./google-services.json + ./GoogleService-Info.plist
bun run signing:fingerprints   # add SHA-1 / SHA-256 in Firebase Console, then sync again
eas init                       # paste project ID into app.config.ts
bun run android                # or: ios · build:dev:android

Full checklist: docs/SETUP.md · Agent skills: docs/AGENTS_SKILLS.md


Why this template

One app identity Single package / bundle ID for every build profile
Auth that ships Email · Google One Tap · Apple · SMS · Phone Number Verification
Firebase done right Native RNFB, offline Firestore, App Check, locked-down rules
Delivery EAS Build, Update channels, secure Google Services via EAS file env
Low manual setup Scripts for native config sync and Android SHA fingerprints
Agent-ready Official Expo, Firebase, Vercel RN, Callstack skills via skills:install
Secure defaults Strong .gitignore / .easignore, no secrets in git

Stack

Area Choice
App Expo SDK 57 · React Native · React 19 · TypeScript
Navigation Expo Router (typed routes)
Backend @react-native-firebase/* + Cloud Functions
Data TanStack Query · Zod · offline Firestore
Auth Nitro Google Sign-In · Apple · Phone SMS/PNV
Security App Check (debug / Play Integrity / App Attest)
Push expo-notifications (channels, categories, token)
Delivery EAS Build + Update
Tooling Bun-first · ESLint · Jest · React Compiler

Documentation

Guide
Setup from scratch Clone → Firebase → EAS → first run
Signing & SHA fingerprints Debug, EAS, Play App Signing
Google Services Root google-services.json + plist
Auth / OAuth / PNV Providers and lifecycle helpers
App Check & Play ADI Debug vs production providers
Notifications Channels, categories, tokens
Security Secrets, rules, baseline
Agent skills & MCP Expo · Firebase · Vercel · Callstack
Agents Rules for coding agents
Contributing PRs and guidelines

Scripts

Command Purpose
bun start / start:dev-client Metro
bun run android / ios Local native run
bun run build:dev:* / preview:* / prod:* EAS builds
bun run update:dev / update:preview EAS Update
bun run firebase:sync / firebase:sync:eas Native Google Services (project root)
bun run firebase:deploy Rules, indexes, storage, functions
bun run signing:fingerprints Print Android SHA-1 / SHA-256
bun run skills:install Install/refresh agent skills
bun run lint / typecheck / test Quality

Project layout

src/app/                 # Expo Router screens
src/features/            # Domain modules (auth lifecycle, …)
src/lib/firebase/        # Auth, App Check, Firestore, Storage, callables
src/lib/notifications/
src/components/ui/
src/providers/
functions/
google-services.json     # Android (gitignored; from firebase:sync)
GoogleService-Info.plist # iOS (gitignored; from firebase:sync)
docs/
docs/assets/             # README brand marks (Expo, Firebase)
scripts/
.agents/skills/          # After: bun run skills:install

Path alias: @/*./src/*.


License

MIT © Adhham

Expo® and Firebase™ logos are trademarks of their respective owners and are used here only to identify the technologies this template integrates with.


Support

If this template saves you time, star the repo — it helps others find it.

About

Production-ready Expo SDK 57 / React Native + Firebase template. Feature-based, scalable, AI/agent-friendly, with EAS, Cloud Functions, high-performance configs, and quick-start guides. Placeholders for project-specific values.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages