What an App Like Uber Takes
Building an app like Uber takes roughly $70,000 to $150,000 and 4 to 6 months for a focused first version in one city, and $250,000 to $500,000 or more over 9 to 14 months for a full platform. Do not clone Uber. Pick a niche it serves badly, such as non-emergency medical transport, rides for kids, airport shuttles in one city, or on-demand dispatch for a trade, then build a rider app, a driver app, an ops dashboard, dispatch, and driver payouts for that niche only.
Uber looks like a map with a button on it. Behind the button sit a live location system, a matching engine, a payments platform that pays thousands of contractors, a fare engine, and a compliance operation that changes from one city to the next. The screens are the cheap part. Most of the budget and nearly all of the risk live in what happens between the tap and the car pulling up.
This article is the overview: the pieces, the order to build them in, and the decisions you have to make before anyone writes code. For the feature-by-feature walkthrough, read our guide on how to build a ride-sharing app. This one stays on the choices that decide whether the product works and what it costs.
Two Apps and an Ops Dashboard
Founders say "the app" and mean the rider app. You are building three products on one backend, and the two that riders never see decide whether the first month goes well.
Rider app
Set a pickup and a destination, see a fare before committing, request, watch the car approach, pay without touching a wallet, rate the ride. Six or seven screens. What separates a good one from a bad one is small: a pickup pin that lands on the correct side of the street, a fare estimate that matches the final charge, and a status that updates on its own when the driver is two minutes out.
Driver app
Go online, get an offer with a countdown, accept, drive to the pickup, start the trip, end it, see what you earned. It has to keep reporting location with the screen off and the phone in a cup holder, on a three-year-old Android with battery saver turned on. Background location is where iOS and Android behave differently, where app review asks the hardest questions, and where bugs only show up on real roads. Give it more testing time than any other screen in the project.
Ops dashboard
A web app for your team: a live map of drivers and trips, a queue of requests nobody accepted, manual assignment, driver approval and document expiry dates, fare adjustments, refunds, and payout reports. In a niche product this is often the main product. A medical transport operator books most rides from the dashboard on behalf of patients, days ahead, and the rider app is secondary.
Skip the dashboard and your first bad Friday night gets fixed by someone editing the database by hand. Build it early, even if it is ugly.
Real-Time Location and Dispatch
This is the hard part, and it is where a ride app stops being a normal CRUD product. Three things have to work together: knowing where every driver is, choosing one for each request, and keeping two phones and a dashboard in agreement about what is happening.
Location
Each online driver sends a position every 3 to 5 seconds during a trip and less often while idle. Fifty drivers produce close to a million points in a busy day. Keep the latest position per driver in memory, in something like Redis with its geospatial commands, and write the trip trail to Postgres in batches. Riders get the driver's position over a WebSocket, and the app animates between points so the car glides instead of hopping.
Matching
Start with the simple version. Find online drivers within a radius, rank them by estimated drive time to the pickup, and offer the ride to the top one with a 15 to 20 second timer. On a decline or a timeout, move to the next and widen the radius. Straight-line distance is a poor ranking signal in any city with a river or a highway through it, so pay for the travel-time call.
Record every offer, accept, decline, and timeout as an event. Those events tell you why riders waited nine minutes on a Tuesday, and they are what you will use to tune the radius and the timer later.
State
A trip is a state machine: requested, offered, accepted, arriving, in progress, completed, cancelled. Every bug you will hate comes from two parties disagreeing about the state. The driver taps accept in a tunnel. The rider cancels in the same second. Two drivers accept one offer. Make the server the only authority, make every transition safe to retry, and have the apps ask the server for the current state each time they reconnect.
Niche products change the shape of this problem in your favor. Airport shuttles and medical transport are mostly booked ahead, which turns live matching into scheduling: assign tomorrow's trips tonight, then handle exceptions by hand in the dashboard. Scheduled dispatch is weeks of work. A live matching engine with pooling and surge is months.
Maps and Routing: Google Maps Platform or Mapbox
You will call a maps vendor for four jobs: drawing the map, address search, routes with travel time, and turn-by-turn directions for the driver. The vendor is the one recurring bill that grows with every ride, so pick it with a spreadsheet open.
Google Maps Platform
Google has the best address and place data in the US, which matters when riders type "the Walgreens on 5th." Since March 2025 the old $200 monthly credit is gone. Each product now has its own free monthly allowance, about 10,000 calls on the basic tier and fewer on the higher tiers, and you pay per 1,000 calls after that. Route requests list at roughly $5 to $15 per 1,000 depending on whether you need live traffic and the advanced options. Address autocomplete and place lookups are billed separately and tend to become the largest line if you are careless.
Mapbox
Mapbox bills mobile maps by monthly active users and routing by request, with a larger free tier. Its published allowance has been around 100,000 directions requests a month, with prices near $2 per 1,000 after that. You also get full control over map styling. Its in-app turn-by-turn SDK is billed per active user and per trip. Address search is good and still a step behind Google for businesses and odd pickup spots.
What a ride costs in map calls
One completed ride uses an autocomplete session, a geocode or two, a route for the fare estimate, travel-time calls during matching, a route for the driver, and ETA refreshes along the way. With sensible caching, plan for a few cents per ride on either vendor. A pilot with a few hundred rides a month fits inside the free tiers. A few thousand rides a month usually lands between $100 and $1,000 a month, and a careless build that recalculates the route on every location ping can run ten times that.
Our pick for most niche products: Google for address search, because a wrong pickup pin costs you a ride, and whichever vendor is cheaper at your volume for routes. In the first version, hand turn-by-turn directions off to the Google Maps, Apple Maps or Waze app with a deep link. Drivers already trust those apps, and it removes weeks from the build. Both vendors change prices often, so check their pricing pages before you model anything.
Payments, Driver Payouts, and Fare Logic
A ride moves money in two directions. The rider pays you, and you pay the driver, minus your commission. Stripe Connect is the default for this, and building around it instead of against it saves months.
Charging the rider
Save the card at signup. Place a hold for the estimated fare when the ride is requested, then capture the final amount when the trip ends. If the trip is cancelled before a driver is on the way, release the hold. A hold that is released never shows up as a refund, which keeps your dispute rate down. US card processing typically runs around 2.9 percent plus 30 cents per charge, so a $25 ride loses about a dollar before the driver is paid.
Paying the driver
Every driver gets a connected account. Use Express accounts so Stripe hosts the identity check, the bank details, and the year-end tax forms. Weekly payouts are the baseline. Instant payouts to a debit card cost an added fee, and drivers ask for them in the first week. Connect has its own per-account and per-payout fees that vary by country, so read Stripe's pricing page for your market before you set a commission.
Fare logic
The standard formula is a base fare, plus a rate per mile, plus a rate per minute, with a minimum fare and a booking fee on top. Then come the cases that eat engineering time: tolls, airport fees, wait time at the pickup, cancellation fees, a destination changed mid-trip, tips added after the ride, and promo codes.
- Keep rates as data. A rate card per city, per vehicle type, and per time window, editable from the dashboard. Hard-coded prices are the first thing you will regret.
- Quote upfront. Riders want a fixed price before they request. Decide what happens when the real route runs long, and write the rule down.
- Store the math. Save the full breakdown for every trip. When a rider disputes a $41 charge, support should see every line of it.
- Skip surge. Dynamic pricing needs demand data you do not have yet. A flat peak-hours rate does the job for the first year.
Niche products often get simpler fares. Airport shuttles run on flat zone prices. Medical transport is frequently billed to a facility or a health plan by contract, which swaps card payments for invoicing and adds trip documentation requirements instead.
Trust, Safety, and Local Rules
You are putting strangers in cars together. This part of the product has almost no screens and can still stop a launch.
Driver screening
Use a background check vendor instead of building your own process. Checkr is the common choice in the US and has an API that fits into driver onboarding. Published package prices run from about $30 to $95 per report, and a driving record check plus county court fees are added on top, so budget $50 to $120 per approved driver. Checks also have to be rerun on a schedule. Collect the license, vehicle registration, and insurance card in the app, and track expiry dates in the dashboard so a driver with a lapsed document goes offline automatically.
Insurance
A driver's personal auto policy generally excludes commercial trips. Ride-hail laws in most US states require the platform to carry or verify commercial coverage for the period a driver is online and a higher limit while a passenger is in the car, commonly $1 million in liability. This is a recurring cost that scales with miles, and you need a quote from a commercial broker before you finish the financial model. It is frequently the line that decides whether a niche is viable.
Local rules
Most states regulate ride-hail companies as transportation network companies, with a permit, fees, driver requirements, and reporting. Some cities add their own layer, and airports require a separate permit with per-trip fees and a geofenced pickup area. Medical transport and rides for children carry extra requirements that vary by state, such as fingerprinting or vehicle inspections. Talk to a transportation attorney in your launch city before you scope, because the rules decide features: what the receipt must show, what records you keep, and what the driver app displays.
In-app safety
The baseline is trip sharing with a contact, masked phone numbers through a service like Twilio, a visible emergency button, two-way ratings, and an incident queue in the dashboard. Rides for kids add a pickup code and a live feed for the parent.
Trust also has to be visible to the buyer. When we built the site for Community Run Camps, a summer sports camp company where parents book for their kids, verified coach profiles were the trust layer: college, sport, position and playing history on every coach, linked from every camp they run. Parents started booking the week it went live. A kids' ride product needs the same thing for drivers, with the name, the photo, and the checks passed shown before a parent ever requests.
The Stack We Would Pick
Pick proven tools and spend your risk on dispatch and the launch city.
- Mobile: React Native with Expo for both apps, in one TypeScript codebase with shared types and components. Go native in Swift and Kotlin only if the driver app needs behavior Expo's location tasks cannot give you, which is rare.
- Web: Next.js for the ops dashboard and the marketing site.
- Backend: Node.js with a typed API. One service is enough for the first year.
- Database: PostgreSQL as the record of trips and money, with PostGIS for service areas, airport geofences, and nearby-driver queries.
- Live location: Redis for current driver positions, and WebSockets for pushing updates to riders and the dashboard. A managed service such as Ably saves you from running socket servers yourself.
- Jobs: A queue such as BullMQ for offer timers, scheduled rides, payouts, and document expiry reminders.
- Vendors: Google Maps Platform or Mapbox, Stripe Connect, Checkr, Twilio for SMS and masked calls, and push through Expo or Firebase.
Two choices matter more than the rest. Use one codebase for both apps, because two native teams roughly double the mobile budget for no benefit a rider can see. And keep money and trip state in Postgres with real transactions, since a ride that is charged twice or paid out twice is the kind of bug that ends driver trust in a day.
Cost and Timeline
These are market ranges for a senior product team in the US or Western Europe. They are estimates, and scope moves them more than hourly rates do. Our app development cost page covers what drives app budgets in general.
- Focused first version: $70,000 to $150,000, 4 to 6 months. One city, one vehicle type, rider and driver apps in React Native, an ops dashboard, nearest-driver or scheduled dispatch, live tracking, Stripe Connect payouts, and driver onboarding with background checks.
- Mid-size platform: $150,000 to $300,000, 6 to 10 months. Adds scheduled and recurring rides, multiple vehicle types, promo codes, in-app chat, a support console, better ETAs, and reporting for regulators.
- Full platform: $250,000 to $500,000 and up, 9 to 14 months. Multiple cities with their own rate cards and rules, dynamic pricing, pooled rides, fraud tooling, corporate accounts, and a dispatch optimizer.
Five things move the number. How smart dispatch has to be on day one. Whether rides are on demand, scheduled, or both. How many cities and rule sets you launch with. Whether you build in-app turn-by-turn or hand off to a maps app. And how much of the operation the dashboard has to automate before a human steps in.
After launch, budget 15 to 20 percent of the build cost per year for maintenance. Monthly running costs for a small operation are usually $500 to $3,000 for hosting, plus maps, SMS, background checks, and card fees that scale with rides. Insurance sits outside all of that and can be larger than the rest combined. For the line-by-line version, read how much it costs to build an app like Uber.
What to Build First
Start with supply. A ride app with riders and no drivers fails in one evening, and no amount of code fixes it. Before the build starts, have a list of 20 to 40 drivers or one fleet partner in a single service area, and a first source of demand: a clinic, a school, a hotel, a contractor network.
The order to build in
- Driver app with background location and the trip state machine. It is the riskiest piece, so it goes first and gets tested on real roads from week three.
- Ops dashboard with the live map, manual booking, and manual assignment. With these two pieces you can run paid rides by phone.
- Stripe Connect: driver onboarding, card holds, capture, and weekly payouts.
- Rider app: request, fare quote, tracking, receipt, rating.
- Automatic dispatch, once you have watched a few hundred manual assignments and know what a good match looks like in your city.
- Driver onboarding flow with Checkr and document tracking, replacing the spreadsheet you used for the first drivers.
- Everything else: scheduled and recurring rides if they were not your core, promo codes, chat, tips, peak pricing, and a second city.
That order puts a working service in front of paying riders at about the halfway mark, which is when you find out what the niche needs. Our sibling guide to building an app like DoorDash uses the same supply-first sequence for delivery, and the reasoning carries over.
We build apps like this. Bring the niche, the launch city, and your first list of drivers, and we will scope the two apps and the dashboard, name the vendors, and give you a plan and a number along with the features to leave out of the first release. Book a free strategy call


