“Normally cloning Uber Eats takes weeks — even with AI.
But I already built it for you.
You just deploy and start making money.”

The mobile application is a high-performance, cross-platform app built with React Native and Expo. It provides a complete e-commerce experience.
-
Features
- Authentication: Secure login and registration using Firebase Auth.
- Home Screen: Dynamic banner carousel, deals, bestsellers, and category navigation.
- Product Details: Image galleries, price info, ratings, reviews, and related products.
- Cart & Checkout: Full cart management, shipping calculation, and secure checkout flow.
- Search: Advanced search with debouncing, filtering (price, category, brand), and sorting.
- User Profile: Order history, address management, and wishlist.
- Reviews: User-generated ratings and reviews.
-
Tech Stack
- Framework: React Native (Expo SDK)
- Navigation: Expo Router (File-based routing)
- UI Library: Gluestack UI (for accessible, styled components)
- Styling: NativeWind (Tailwind CSS for React Native)
- State Management: React Context (Auth, Cart, Wishlist)
- Backend Integration: Firebase SDK
The backend powers the data and business logic, leveraging Firebase's serverless infrastructure.
-
Features
- Database: Firestore for storing users, products, orders, reviews, etc.
- Seeding:
seed.jsscript to populate the database with demo data (products, categories, reviews). - Serverless Functions: Firebase Cloud Functions for complex logic.
- Security: Firestore Rules (
firestore.rules) to secure data access.
-
Tech Stack
- Runtime: Node.js
- Database: Firebase Firestore
- Admin SDK: Firebase Admin SDK (for seeding and admin tasks)
- Functions: Firebase Cloud Functions
A modern web-based administration dashboard to manage the platform.
-
Features
- Dashboard: Overview of sales, orders, and user activity.
- Product Management: Add, edit, and remove products.
- Order Management: View and update order statuses.
-
Tech Stack
- Framework: Next.js
- Styling: Tailwind CSS
- Language: TypeScript
Fork https://github.com/basir/ubereats-clone and open it in VS Code.
- Create a Firebase Project: Go to the Firebase Console and create a new project.
- Enable Services:
- Authentication: Enable Email/Password provider.
- Firestore Database: Create a database in production mode.
- Storage: Enable if you plan to upload images.
- Install Firebase CLI:
npm install -g firebase-tools
- Login:
firebase login
- Get Stripe Secret Key : Go to the Stripe Console and copy your stripe secret key.
- Deploy:
Navigate to the
backendfolder:cd backend npm install cd functions npm install cd .. # make sure you enabled Blaze plan in your firebase project before deploying npm run deploy # enter STRIPE_SECRET_KEY in the prompt
- Create Service Account:
- Go to the Firebase Console
- Navigate to Project Settings > Service Accounts
- Click on "Generate New Private Key"
- Download the JSON file
- Save the JSON file in the
backendfolder - Add FIREBASE_SERVICE_ACCOUNT_PATH to
backend/.envwith the path to the JSON file
- Seed Data:
npm run seed
- Open https://console.firebase.google.com and create web app.
- Duplicate admin/.env.example and update as admin/.env.local and update values.
- Open cloud.google.com and enable Map Api and Direction Api on this key.
- Open Vercel and create vercel account
- Click add project and select the forked repo
- Enter this settings:
- root directory: admin
- framework: Next.js
- Copy Environment Variables based on admin/.env.local
- Click deploy
- Open https://your-admin-panel.vercel.app
In this section, we will generate mobile app for web, android and ios.
- Duplicate
mobile/.env.exampleasmobile/.env.local - On https://console.firebase.google.com create ios and android apps:
- Web App: download the config file and update
mobile/.env.local:
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN= EXPO_PUBLIC_FIREBASE_PROJECT_ID= EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET= EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID= EXPO_PUBLIC_FIREBASE_API_KEY_ANDROID= EXPO_PUBLIC_FIREBASE_APP_ID_ANDROID= EXPO_PUBLIC_FIREBASE_API_KEY_IOS= EXPO_PUBLIC_FIREBASE_APP_ID_IOS= - Web App: download the config file and update
- Open cloud.google.com and enable Map Api and Direction Api on both apps keys.
- Get stripe publishable key from stripe dashboard and update
mobile/.env.localEXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY=
For this section, you need to have an Android device.
- Connect Your Android device to Computer via USB cable and enable debugging
- Install Android Studio
- In your project (mobile folder):
npx expo run:android
-
Generate
.aabfilenpx expo prebuild -p android cd android ./gradlew bundleRelease- Output at android/app/build/outputs/bundle/release/app-release.aab
-
Submit
.aabto Google Play Console:
For this section, you need to have a Mac computer and an iPhone.
- Connect Your iOS device to Computer via USB cable:
- Install Xcode
- In your project (mobile folder):
npx expo run:ios
- Node.js installed.
- Expo Go app on your phone (for mobile testing).
- Navigate to the mobile folder:
cd mobile - Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to the backend folder:
cd backend - Install dependencies:
npm install
- Run the seed script (optional, to reset data):
npm run seed
- Navigate to the admin folder:
cd admin - Install dependencies:
npm install
- Start the development server:
Open http://localhost:3000 in your browser.
npm run dev