{"id":12102,"date":"2025-04-15T07:15:56","date_gmt":"2025-04-15T07:15:56","guid":{"rendered":"https:\/\/dianapps.com\/blog\/?p=12102"},"modified":"2025-04-17T10:52:09","modified_gmt":"2025-04-17T10:52:09","slug":"uber-clone-app-development-build-your-own-uber-clone","status":"publish","type":"post","link":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/","title":{"rendered":"Uber Clone App Development: Build Your Own Uber Clone"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Looking to launch your own Uber clone app but not sure where to begin? Wondering what it actually takes, technically and strategically, to build a ride-hailing platform that scales?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As of 2025, the global ride-sharing market is projected to exceed <\/span><b>$220 billion<\/b><span style=\"font-weight: 400;\">, driven by on-demand convenience and urban mobility trends.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With apps like Uber, Lyft, and Grab setting the benchmark, startups and enterprises alike are tapping into clone app development to fast-track their market entry without starting from scratch.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">What is a clone app? Or what is the clone app used for?\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A clone app is an application designed to mimic the functionality and features of an existing, popular app. It&#8217;s essentially a replication of an app&#8217;s core features, often with slight variations or additions to cater to a specific niche or target audience.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">What are the examples of clone app development?<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Social media platform (Instagram, Facebook)\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dating apps (Tinder, Bumble)\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Food delivery (Swiggy, Zomat)\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Transportation apps (Uber, Ola)\u00a0<\/span><\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-12106\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/uber-clone-app.png\" alt=\"uber clone app\" width=\"825\" height=\"619\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/uber-clone-app-768x576.png 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/uber-clone-app-463x348.png 463w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/uber-clone-app-640x480.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/uber-clone-app-400x300.png 400w\" sizes=\"(max-width: 825px) 100vw, 825px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">In this blog, we\u2019ll break down the core components of building an Uber Clone app, including real-world code snippets, scalable architecture, and tools that save both time and money.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you&#8217;re a developer or a founder aiming to create a robust mobility solution, this is your shortcut to execution.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tech-Stack-Overview\"><\/span><span style=\"font-weight: 400;\">Tech Stack Overview<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To build a scalable, high-performing Uber Clone app, you&#8217;ll need a stack that supports real-time features, cross-platform compatibility, and secure transactions. Here&#8217;s the recommended tech stack:<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Frontend-User-Driver-App\"><\/span><span style=\"font-weight: 400;\">Frontend (User + Driver App)<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-12105\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Tech-Stack-Overview.png\" alt=\"Tech Stack Overview\" width=\"686\" height=\"386\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Tech-Stack-Overview.png 686w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Tech-Stack-Overview-640x360.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Tech-Stack-Overview-400x225.png 400w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.youtube.com\/watch?v=3gOru1bNWEk\" target=\"_blank\" rel=\"nofollow noopener\"><span style=\"font-weight: 400;\">Source<\/span><\/a><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">React Native: Write once, deploy on iOS &amp; Android<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Redux: For state management<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">React Navigation: For smooth screen transitions<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Also read the<\/span><a href=\"https:\/\/dianapps.com\/blog\/the-role-of-redux-in-react-native-app-development\/\"><span style=\"font-weight: 400;\"> role of Redux<\/span><\/a><span style=\"font-weight: 400;\"> in React Native app development!<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Backend\"><\/span><span style=\"font-weight: 400;\">Backend<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Node.js + Express.js: Fast, scalable backend logic<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Socket.io: Real-time location &amp; ride updates<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">MongoDB: Flexible NoSQL DB to handle dynamic ride data<\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"APIs-Integrations\"><\/span><span style=\"font-weight: 400;\">APIs &amp; Integrations<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Google Maps API: Geolocation, routes, ETA, etc.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Firebase Authentication: Fast auth with email\/phone<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Stripe or Razorpay: Payment processing<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Twilio: For driver-user communication (call\/SMS masking)<\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Admin-Panel-Optional\"><\/span><span style=\"font-weight: 400;\">Admin Panel (Optional)<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">React (Web) + Chart.js: For visualizing rides, earnings, active users<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Node.js + MongoDB: For backend reporting and admin operations<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Want to keep it lean? Start with core modules (rider app, driver app, basic backend), then scale up to advanced features for your best Uber clone app.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">How about knowing the entire <\/span><a href=\"https:\/\/dianapps.com\/blog\/ride-sharing-app-cost-features-and-development-process\/\"><span style=\"font-weight: 400;\">process of ride-sharing apps<\/span><\/a><span style=\"font-weight: 400;\"> before understanding the core features of the Clone app?<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Core-Features-to-Uber-Clone-App-Development\"><\/span><span style=\"font-weight: 400;\">Core Features to Uber Clone App Development<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-12103\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Core-Features-to-Uber-Clone-App-Development.png\" alt=\"Core Features to Uber Clone App Development\" width=\"345\" height=\"701\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"1-User-Registration-Authentication\"><\/span><span style=\"font-weight: 400;\">1. User Registration &amp; Authentication<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Every Uber-like app begins with a secure onboarding flow. Users and drivers must register and log in via email, phone number, or social logins. Implementing Firebase Authentication or custom JWT-based flows ensures data protection and scalability from the start.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"2-Real-Time-Location-Tracking\"><\/span><span style=\"font-weight: 400;\">2. Real-Time Location Tracking<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">This is the backbone of your clone. From showing the user\u2019s live location to matching them with nearby drivers, GPS integration via Google Maps API and Socket.io enables smooth location updates in real-time. You&#8217;ll need to handle background location access, location permission prompts, and device compatibility.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"3-Ride-Booking-Matching-Algorithm\"><\/span><span style=\"font-weight: 400;\">3. Ride Booking &amp; Matching Algorithm<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Once a pickup and drop-off location is entered, your app should calculate ETA, fare, and assign the nearest available driver. This logic typically runs on the backend using Haversine formula calculations and geospatial queries via MongoDB\u2019s geolocation capabilities.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"4-Live-Ride-Tracking\"><\/span><span style=\"font-weight: 400;\">4. Live Ride Tracking<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">After a driver accepts the ride, both user and driver should be able to track the ride status live. This requires two-way socket connections, map overlays, and periodically syncing driver location to both user UI and backend.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"5-In-App-Payments\"><\/span><span style=\"font-weight: 400;\">5. In-App Payments<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Seamless payments are non-negotiable. Integrate Stripe or Razorpay to allow users to pay through cards, wallets, or UPI. You\u2019ll also want to manage payment intents, refunds, and invoicing\u2014all from a secure backend.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"6-Ratings-Reviews\"><\/span><span style=\"font-weight: 400;\">6. Ratings &amp; Reviews<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Post-ride feedback helps maintain quality control. Users should be able to rate drivers and vice versa, with optional comments. Store these ratings against ride history and sync them with driver profiles for future ride decisions.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"7-Predictive-ETA-Fare-Estimation\"><\/span><span style=\"font-weight: 400;\">7. Predictive ETA &amp; Fare Estimation<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Move beyond static distance-based pricing. Integrate real-time traffic data via Google Maps Distance Matrix API and combine it with ML-driven surge pricing logic. Use external services or TensorFlow.js to model time-of-day, location density, and demand spikes for more accurate predictions.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"8-Heat-Maps-for-Drivers\"><\/span><span style=\"font-weight: 400;\">8. Heat Maps for Drivers<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Show drivers real-time heat zones where demand is highest. This feature requires backend data aggregation of ongoing and scheduled rides, followed by heatmap rendering on the driver UI using gradient overlays in React Native Maps.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"9-Dynamic-Driver-Rider-Matching\"><\/span><span style=\"font-weight: 400;\">9. Dynamic Driver-Rider Matching<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Implement an intelligent matching engine based on factors like driver rating, proximity, acceptance rate, and cancellation history. Use a weighted algorithm on the backend to prioritize who receives the ride request.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"10-SOS-Ride-Safety-Toolkit\"><\/span><span style=\"font-weight: 400;\">10. SOS &amp; Ride Safety Toolkit<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In-app SOS triggers, real-time location sharing with emergency contacts, and trip status tracking by friends add a safety-first layer. Integrate Twilio for SMS alerts and use Firebase Cloud Messaging (FCM) for sending live safety updates.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"11-Wallet-Split-Fare\"><\/span><span style=\"font-weight: 400;\">11. Wallet &amp; Split Fare<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Users should be able to top-up a wallet, schedule payments, or split fares with co-riders. This involves secure balance management, contact syncing, and micro-transaction handling through the payment gateway provider\u2019s APIs.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"12-In-App-Chat-Call-with-Masking\"><\/span><span style=\"font-weight: 400;\">12. In-App Chat &amp; Call with Masking<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Enable real-time chat using Firebase or Stream Chat SDK, and add VoIP calling with Twilio or Agora. Mask both driver and user numbers using Twilio\u2019s proxy API to protect privacy.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"13-Scheduled-Recurring-Rides\"><\/span><span style=\"font-weight: 400;\">13. Scheduled &amp; Recurring Rides<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Allow users to schedule rides in advance or create recurring bookings for daily commutes. This requires a robust cron job setup in the backend, real-time reminder push notifications, and driver-side availability checks.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"14-Driver-Incentive-Engine\"><\/span><span style=\"font-weight: 400;\">14. Driver Incentive Engine<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Build an internal module that tracks driver performance, ride completions, and customer ratings, and rewards them with dynamic incentives. You can visualize this data in the admin panel and automate payout cycles using Stripe Connect.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Lets-Build-Code-Infused-Feature-Modules-For-Uber-Clone-App\"><\/span><span style=\"font-weight: 400;\">Let\u2019s Build: Code-Infused Feature Modules For Uber Clone App<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1-User-Location-Real-Time-Map-Integration\"><\/span><span style=\"font-weight: 400;\">1. User Location &amp; Real-Time Map Integration<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">This module displays the user\u2019s current location and allows them to select a pickup point. Using react-native-maps and expo-location (or native permissions if you&#8217;re not using Expo):<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">import MapView, { Marker } from 'react-native-maps';\r\n\r\nimport * as Location from 'expo-location';\r\n\r\n\r\nconst [location, setLocation] = useState(null);\r\n\r\n\r\nuseEffect(() =&gt; {\r\n\r\n\u00a0\u00a0(async () =&gt; {\r\n\r\n\u00a0\u00a0\u00a0\u00a0let { status } = await Location.requestForegroundPermissionsAsync();\r\n\r\n\u00a0\u00a0\u00a0\u00a0if (status !== 'granted') return;\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0let loc = await Location.getCurrentPositionAsync({});\r\n\r\n\u00a0\u00a0\u00a0\u00a0setLocation(loc.coords);\r\n\r\n\u00a0\u00a0})();\r\n\r\n}, []);\r\n\r\n\r\n&lt;MapView\r\n\r\n\u00a0\u00a0style={{ flex: 1 }}\r\n\r\n\u00a0\u00a0region={{\r\n\r\n\u00a0\u00a0\u00a0\u00a0latitude: location?.latitude || defaultLat,\r\n\r\n\u00a0\u00a0\u00a0\u00a0longitude: location?.longitude || defaultLong,\r\n\r\n\u00a0\u00a0\u00a0\u00a0latitudeDelta: 0.005,\r\n\r\n\u00a0\u00a0\u00a0\u00a0longitudeDelta: 0.005,\r\n\r\n\u00a0\u00a0}}\r\n\r\n&gt;\r\n\r\n\u00a0\u00a0&lt;Marker coordinate={location} \/&gt;\r\n\r\n&lt;\/MapView&gt;<\/pre>\n<p><span style=\"font-weight: 400;\">In case you also want to know how to<\/span><a href=\"https:\/\/dianapps.com\/blog\/building-a-react-native-app-without-expo-a-comprehensive-guide\/\"><span style=\"font-weight: 400;\"> build a react native app without expo<\/span><\/a><span style=\"font-weight: 400;\">, read here!\u00a0<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"2-Ride-Request-Driver-Matching-Backend\"><\/span><span style=\"font-weight: 400;\">2. Ride Request &amp; Driver Matching (Backend)<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The ride booking request triggers backend logic to find the closest available driver. This sample uses MongoDB\u2019s geospatial query:<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">const findNearbyDrivers = async (pickupCoords) =&gt; {\r\n\r\n\u00a0\u00a0const drivers = await DriverModel.find({\r\n\r\n\u00a0\u00a0\u00a0\u00a0location: {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$near: {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$geometry: { type: \"Point\", coordinates: [pickupCoords.lng, pickupCoords.lat] },\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$maxDistance: 5000 \/\/ 5 km radius\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0},\r\n\r\n\u00a0\u00a0\u00a0\u00a0isAvailable: true\r\n\r\n\u00a0\u00a0});\r\n\r\n\r\n\u00a0\u00a0return drivers[0]; \/\/ send to closest driver\r\n\r\n};<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"3-Real-Time-Driver-Tracking-via-Sockets\"><\/span><span style=\"font-weight: 400;\">3. Real-Time Driver Tracking via Sockets<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Track the driver\u2019s movement during an active ride. The driver app emits location, and the rider listens in:<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">\/\/ Driver App\r\n\r\nsocket.emit(\"driverLocationUpdate\", {\r\n\r\n\u00a0\u00a0driverId,\r\n\r\n\u00a0\u00a0coords: { lat, lng }\r\n\r\n});\r\n\r\n\r\n\/\/ Rider App\r\n\r\nsocket.on(\"updateDriverLocation\", (data) =&gt; {\r\n\r\n\u00a0\u00a0setDriverCoords(data.coords);\r\n\r\n});<\/pre>\n<p><span style=\"font-weight: 400;\">Backend socket server should broadcast location updates to the respective rider&#8217;s room.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"4-Payment-Intent-with-Stripe\"><\/span><span style=\"font-weight: 400;\">4. Payment Intent with Stripe<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Secure payment gateway integration using Stripe for ride fare:<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">const stripe = require('stripe')('sk_test_key');\r\n\r\n\r\napp.post('\/create-payment-intent', async (req, res) =&gt; {\r\n\r\n\u00a0\u00a0const { amount } = req.body;\r\n\r\n\r\n\u00a0\u00a0const paymentIntent = await stripe.paymentIntents.create({\r\n\r\n\u00a0\u00a0\u00a0\u00a0amount,\r\n\r\n\u00a0\u00a0\u00a0\u00a0currency: 'usd',\r\n\r\n\u00a0\u00a0\u00a0\u00a0payment_method_types: ['card']\r\n\r\n\u00a0\u00a0});\r\n\r\n\r\n\u00a0\u00a0res.send({ clientSecret: paymentIntent.client_secret });\r\n\r\n});<\/pre>\n<p><span style=\"font-weight: 400;\">Integrate the client secret into your frontend using @stripe\/stripe-react-native to handle card entry and confirmation.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"5-In-App-Chat-Firebase-Firestore\"><\/span><span style=\"font-weight: 400;\">5. In-App Chat (Firebase Firestore)<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Enable driver and rider to communicate within the app using real-time chat:<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">\/\/ Send Message\r\n\r\nawait addDoc(collection(db, \"chats\", chatId, \"messages\"), {\r\n\r\n\u00a0\u00a0text: messageText,\r\n\r\n\u00a0\u00a0senderId: currentUserId,\r\n\r\n\u00a0\u00a0timestamp: serverTimestamp()\r\n\r\n});\r\n\r\n\r\n\/\/ Real-time Listener\r\n\r\nonSnapshot(collection(db, \"chats\", chatId, \"messages\"), (snapshot) =&gt; {\r\n\r\n\u00a0\u00a0const messages = snapshot.docs.map(doc =&gt; doc.data());\r\n\r\n\u00a0\u00a0setMessages(messages);\r\n\r\n});<\/pre>\n<p><span style=\"font-weight: 400;\">Time to explore some Admin panel features of Uber clone app development.\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Admin-Panel-Features\"><\/span><span style=\"font-weight: 400;\">Admin Panel Features<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">This section gives founders, ops teams, or stakeholders full control over what happens inside the Uber Clone ecosystem. We ensured keeping the Admin panel features straightforward, code-aware, and goal-oriented for devs building the backend or full-stack.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ride-Analytics-Dashboard\"><\/span><span style=\"font-weight: 400;\">Ride Analytics &amp; Dashboard<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Your admin panel should surface key KPIs like total rides, revenue, active users, driver availability, and cancellations. Build this using React for the frontend and Chart.js for real-time visualization.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Example: Fetching and rendering monthly revenue:<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true \">\/\/ Backend (Node.js)\r\n\r\napp.get('\/admin\/revenue-stats', async (req, res) =&gt; {\r\n\r\n\u00a0\u00a0const stats = await RideModel.aggregate([\r\n\r\n\u00a0\u00a0\u00a0\u00a0{\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$group: {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0_id: { $month: \"$completedAt\" },\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0total: { $sum: \"$fare\" }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0]);\r\n\r\n\u00a0\u00a0res.json(stats);\r\n\r\n});\r\n\r\n\r\n\/\/ Frontend (React + Chart.js)\r\n\r\n&lt;Line\r\n\r\n\u00a0\u00a0data={{\r\n\r\n\u00a0\u00a0\u00a0\u00a0labels: months,\r\n\r\n\u00a0\u00a0\u00a0\u00a0datasets: [{\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0label: 'Monthly Revenue',\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data: revenueData,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0backgroundColor: '#4caf50'\r\n\r\n\u00a0\u00a0\u00a0\u00a0}]\r\n\r\n\u00a0\u00a0}}\r\n\r\n\/&gt;<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Driver-Onboarding-KYC\"><\/span><span style=\"font-weight: 400;\">Driver Onboarding &amp; KYC<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Admins should be able to view and approve new driver registrations. Store documents (license, ID) in Firebase Storage or AWS S3, and keep verification status in your DB.<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">const verifyDriver = async (driverId) =&gt; {\r\n\r\n\u00a0\u00a0await DriverModel.findByIdAndUpdate(driverId, { isVerified: true });\r\n\r\n};<\/pre>\n<p><span style=\"font-weight: 400;\">A dedicated tab in the admin panel can allow manual verification with &#8220;Approve&#8221; and &#8220;Reject&#8221; buttons triggering this route.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"User-Ride-Management\"><\/span><span style=\"font-weight: 400;\">User &amp; Ride Management<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Enable manual trip cancellation, fare adjustments, or blocking of fraudulent users. Admins can view ride history, payment breakdown, and logs through simple CRUD operations from a RESTful API.<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">\/\/ Example: Cancel a Ride\r\n\r\napp.post('\/admin\/cancel-ride', async (req, res) =&gt; {\r\n\r\n\u00a0\u00a0const { rideId, reason } = req.body;\r\n\r\n\u00a0\u00a0await RideModel.findByIdAndUpdate(rideId, {\r\n\r\n\u00a0\u00a0\u00a0\u00a0status: \"cancelled_by_admin\",\r\n\r\n\u00a0\u00a0\u00a0\u00a0cancellationReason: reason\r\n\r\n\u00a0\u00a0});\r\n\r\n\u00a0\u00a0res.send({ success: true });\r\n\r\n});<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Driver-Incentives-Leaderboard\"><\/span><span style=\"font-weight: 400;\">Driver Incentives &amp; Leaderboard<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Add a feature to assign bonuses based on the number of rides, ratings, and working hours. Build a leaderboard to gamify performance and motivate drivers.<\/span><\/p>\n<pre class=\"theme:github font-size:14 nums:false lang:default decode:true\">const topDrivers = await DriverModel.aggregate([\r\n\r\n\u00a0\u00a0{ $match: { isVerified: true } },\r\n\r\n\u00a0\u00a0{ $project: { name: 1, ridesCompleted: 1, rating: 1 } },\r\n\r\n\u00a0\u00a0{ $sort: { ridesCompleted: -1, rating: -1 } },\r\n\r\n\u00a0\u00a0{ $limit: 10 }\r\n\r\n]);<\/pre>\n<p><span style=\"font-weight: 400;\">Display this in a leaderboard-style UI component that updates weekly or monthly.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"How-DianApps-Help-Businesses-Create-an-Uber-Clone-Application\"><\/span><span style=\"font-weight: 400;\">How DianApps Help Businesses Create an Uber Clone Application<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Building a ride-hailing app is not just about replicating features, it&#8217;s about understanding user behavior, optimizing real-time performance, and scaling the app with business goals in mind. At DianApps, we help <\/span><a href=\"https:\/\/dianapps.com\/blog\/why-an-mvp-is-an-important-part-of-the-mobile-app-development\/\"><span style=\"font-weight: 400;\">businesses go from MVP<\/span><\/a><span style=\"font-weight: 400;\"> to market-ready product with tailored Uber Clone solutions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our approach starts with product consultation, where we align your business model, be it peer-to-peer ridesharing, taxi dispatch, or enterprise fleet management. With the right tech architecture.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We don\u2019t offer cookie-cutter scripts; instead, we engineer the backend, frontend, and admin dashboard from scratch to ensure flexibility and scalability.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">See how we get into the process of building an Uber clone app from scratch.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-12104\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/How-DianApps-Help-Businesses-Create-an-Uber-Clone-Application.png\" alt=\"How DianApps Help Businesses Create an Uber Clone Application\" width=\"869\" height=\"489\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/How-DianApps-Help-Businesses-Create-an-Uber-Clone-Application-768x432.png 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/How-DianApps-Help-Businesses-Create-an-Uber-Clone-Application-640x360.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/How-DianApps-Help-Businesses-Create-an-Uber-Clone-Application-400x225.png 400w\" sizes=\"(max-width: 869px) 100vw, 869px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-1-Define-Your-Architecture\"><\/span><span style=\"font-weight: 400;\">Step 1: Define Your Architecture<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Start with deciding how your ecosystem will operate\u2014Rider App, Driver App, Admin Panel, and Backend. Keep services loosely coupled and use a microservice-ready structure to make it future-proof.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-2-Set-Up-Your-Project-Environments\"><\/span><span style=\"font-weight: 400;\">Step 2: Set Up Your Project Environments<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Initialize the mobile apps using React Native CLI (not Expo for full native control). Set up your backend project using Node.js and Express. Use .env for secure key storage and PM2 or Docker for backend service management.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-3-Integrate-Maps-and-Location\"><\/span><span style=\"font-weight: 400;\">Step 3: Integrate Maps and Location<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Configure Google Maps SDK, enable billing, and integrate APIs for Maps, Places, and Distance Matrix. On mobile, handle permission logic and render location-based services for ride request flow.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-4-Develop-Authentication-Onboarding\"><\/span><span style=\"font-weight: 400;\">Step 4: Develop Authentication &amp; Onboarding<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Build separate flows for users and drivers. Use Firebase or custom JWT tokens. Set up different schemas for storing user profiles, vehicles, licenses, and KYC documents.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-5-Build-the-Booking-Engine\"><\/span><span style=\"font-weight: 400;\">Step 5: Build the Booking Engine<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">This includes location input, fare estimation, driver matching, and ride status management. Handle request\/accept\/reject states using real-time sockets and background services.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-6-Enable-Real-Time-Tracking\"><\/span><span style=\"font-weight: 400;\">Step 6: Enable Real-Time Tracking<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Use Socket.io on both frontend and backend. Rooms help isolate each ride session. Broadcast driver&#8217;s live coordinates to the rider app UI and admin dashboard.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-7-Integrate-Payments\"><\/span><span style=\"font-weight: 400;\">Step 7: Integrate Payments<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Set up Stripe (international) or Razorpay (India) for collecting ride fares. Handle success callbacks, webhooks for status updates, and offer wallet or split options if scaling.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-8-Add-Reviews-Trip-History-Notifications\"><\/span><span style=\"font-weight: 400;\">Step 8: Add Reviews, Trip History &amp; Notifications<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Let users and drivers rate each other post-ride. Use FCM for trip updates, reminders, and driver arrival alerts. Store trip history and invoices in the cloud.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-9-Launch-Admin-Panel\"><\/span><span style=\"font-weight: 400;\">Step 9: Launch Admin Panel<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Build a lightweight admin panel using React or Next.js. Features: active rides, fare analytics, user reports, and driver onboarding approval. Secure it behind role-based access controls.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step-10-Test-Optimize-and-Deploy\"><\/span><span style=\"font-weight: 400;\">Step 10: Test, Optimize, and Deploy<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Use Postman for API testing, Jest for unit tests, and Appium for mobile automation if needed. Deploy the backend on AWS\/GCP, use CI\/CD pipelines, and publish the mobile apps on the Play Store and App Store.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Final-Thoughts-Your-Uber-Clone-App-Your-Rules\"><\/span><span style=\"font-weight: 400;\">Final Thoughts: Your Uber Clone App, Your Rules<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The on-demand ride-hailing market isn\u2019t slowing down, it\u2019s evolving. With AI-backed route optimization, dynamic pricing, and hyperlocal integrations, the time to build a future-proof Uber-like app is now.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But success doesn\u2019t come from simply copying a model; it\u2019s about customizing it to your market, brand, and user expectations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">At DianApps, we don\u2019t just code\u2014we co-create. From blueprinting the user flow to deploying the final app on the App Store and Google Play, we stay with you every step of the way.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Whether you want a lean MVP or a full-scale platform with next-gen features, our team builds what your business <\/span><i><span style=\"font-weight: 400;\">actually<\/span><\/i><span style=\"font-weight: 400;\"> needs.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ready-to-Launch-Your-Uber-Clone-App\"><\/span><span style=\"font-weight: 400;\">Ready to Launch Your Uber Clone App?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Let\u2019s turn your ride-hailing vision into a reality.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Contact DianApps, a top <strong><a href=\"https:\/\/dianapps.com\/mobile-app-development\">mobile app development company<\/a><\/strong> to schedule a free consultation with our product experts. No fluff. Just clean code and clear direction.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Looking to launch your own Uber clone app but not sure where to begin? Wondering what it actually takes, technically and strategically, to build a ride-hailing platform that scales? As of 2025, the global ride-sharing market is projected to exceed $220 billion, driven by on-demand convenience and urban mobility trends.\u00a0 With apps like Uber, Lyft, [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":12108,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_applaud_exclude":false,"footnotes":""},"categories":[3],"tags":[1297,1298,67,1296],"class_list":["post-12102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-app-development","tag-build-your-own-uber-clone","tag-clone-app-development","tag-mobile-app-development-company","tag-uber-clone-app-development"],"featured_image_src":{"landsacpe":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Uber-Clone-App-Development-1140x445.png",1140,445,true],"list":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Uber-Clone-App-Development-463x348.png",463,348,true],"medium":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Uber-Clone-App-Development-300x169.png",300,169,true],"full":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Uber-Clone-App-Development.png",1536,864,false]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Uber Clone App Development: Build your own Uber Clone<\/title>\n<meta name=\"description\" content=\"Looking to create your own Uber clone app? From tech stack to proper code commands, this guide covers all for you!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uber Clone App Development: Build your own Uber Clone\" \/>\n<meta property=\"og:description\" content=\"Looking to create your own Uber clone app? From tech stack to proper code commands, this guide covers all for you!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn About Digital Transformation &amp; Development | DianApps Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-15T07:15:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-17T10:52:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Uber-Clone-App-Development.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"864\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Harshita Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Harshita Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uber Clone App Development: Build your own Uber Clone","description":"Looking to create your own Uber clone app? From tech stack to proper code commands, this guide covers all for you!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/","og_locale":"en_US","og_type":"article","og_title":"Uber Clone App Development: Build your own Uber Clone","og_description":"Looking to create your own Uber clone app? From tech stack to proper code commands, this guide covers all for you!","og_url":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/","og_site_name":"Learn About Digital Transformation &amp; Development | DianApps Blog","article_published_time":"2025-04-15T07:15:56+00:00","article_modified_time":"2025-04-17T10:52:09+00:00","og_image":[{"width":1536,"height":864,"url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/Uber-Clone-App-Development.png","type":"image\/png"}],"author":"Harshita Sharma","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Harshita Sharma","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/","url":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/","name":"Uber Clone App Development: Build your own Uber Clone","isPartOf":{"@id":"https:\/\/dianapps.com\/blog\/#website"},"datePublished":"2025-04-15T07:15:56+00:00","dateModified":"2025-04-17T10:52:09+00:00","author":{"@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/6672b5142fe10cc5379a72656c884045"},"description":"Looking to create your own Uber clone app? From tech stack to proper code commands, this guide covers all for you!","breadcrumb":{"@id":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dianapps.com\/blog\/uber-clone-app-development-build-your-own-uber-clone\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dianapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Uber Clone App Development: Build Your Own Uber Clone"}]},{"@type":"WebSite","@id":"https:\/\/dianapps.com\/blog\/#website","url":"https:\/\/dianapps.com\/blog\/","name":"Learn About Digital Transformation &amp; Development | DianApps Blog","description":"Dianapps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dianapps.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/6672b5142fe10cc5379a72656c884045","name":"Harshita Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/unnamed-96x96.png","contentUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/unnamed-96x96.png","caption":"Harshita Sharma"},"description":"A competent and enthusiastic writer, having excellent persuasive skills in the tech, marketing, and event industry. With vast knowledge about the latest industry trends, she is familiar with creating engaging content gigs.","sameAs":["https:\/\/www.linkedin.com\/in\/harshita-sharma-958662198"],"url":"https:\/\/dianapps.com\/blog\/author\/harshita\/"}]}},"_links":{"self":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/12102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/comments?post=12102"}],"version-history":[{"count":2,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/12102\/revisions"}],"predecessor-version":[{"id":12109,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/12102\/revisions\/12109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media\/12108"}],"wp:attachment":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media?parent=12102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/categories?post=12102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/tags?post=12102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}