A Telegram Mini App for a taxi service and ride ordering
A taxi service that still takes orders by phone and dictates addresses to drivers in a shared chat loses money three times over: on the dispatcher, on empty mileage, and on customers who simply left for an aggregator because it’s more convenient there. Joining a big platform hurts too — the commission eats up to a quarter of every ride, and you effectively hand your customer base to someone else’s company. There is a third path: your own Telegram Mini App, with a map, pickup and drop-off points, a fare shown before the ride, automatic order dispatch, and a driver dashboard — all inside a messenger that every passenger already has installed. Let’s look at how it works technically and why it comes out cheaper.
Map and geolocation: why a Telegram Mini App for taxi is not a “bot with buttons”
Ordering a ride through a plain bot is nearly impossible: the address has to be typed as text, the bot doesn’t understand it, and the dispatcher calls back anyway to clarify the entrance. A Mini App removes that problem, because it is a full web interface inside Telegram in which you can open a map. The passenger sees themselves on the map, point A is filled in automatically from the device’s geolocation, and point B is either dragged with a finger across the map or typed in with address autocomplete. Then geocoding and routing come in — Google Maps, Mapbox, or OpenStreetMap — and the system immediately knows the distance in kilometers and the approximate travel time.
The practical difference is enormous. The customer installs nothing from the App Store, registers nowhere, invents no password: they open your service’s chat, tap a button, and a second later they’re on the map. Authorization goes through Telegram itself, the backend verifies the signed user data, the name is pulled in automatically, and the phone number is requested once and stored. As a result, the path from “I need a taxi” to “order accepted” is three or four taps and about twenty seconds, with no phone call at all. This is where the lion’s share of lost customers hides: people don’t like calling and waiting on the line, especially in the evening or in the rain.
The fare before the ride: tariff, distance, and car class
The main complaint passengers have about old-school services is an unclear price. A person gets into the car without knowing what they’ll pay, and every time that’s a small dose of stress. A Mini App calculates the cost before the order is confirmed, using your own formula: pickup fee plus kilometers at the tariff rate, plus waiting minutes, plus coefficients. You control the logic yourself — a minimum ride price, a separate out-of-town tariff, a night surcharge after 11 p.m., a surge multiplier during rush hour or bad weather, extra charges for luggage, a child seat, transporting a pet, or an additional stop on the route. All of it is configured in the admin panel rather than rewritten in code every time.
On top of the tariff comes the choice of car class: economy, comfort, an estate car for big luggage, a minivan for seven, a car with a child seat. Each class has its own coefficient, and the passenger immediately sees three or four options with prices and an estimated pickup time — exactly like in an aggregator. One important detail people often forget: the price must be fixed once the order is confirmed, otherwise the driver “adds a bit” on the spot and you instantly lose trust. If the route changes en route, the recalculation is done by the system according to the same rules, not verbally by the driver. Transparency here isn’t ethics, it’s conversion: services with predictable pricing get noticeably more repeat orders.
Dispatching orders between drivers and the driver dashboard
The biggest part of taxi automation is not the passenger interface but what happens after the “Order” button is pressed. The order reaches the server and must find a driver without a dispatcher’s involvement. There are several workable strategies: give it to the nearest free car of the right class, broadcast it to several drivers within a radius and award it to whoever accepts first, or offer it in turn based on rating. If a driver doesn’t respond within fifteen to thirty seconds, the order automatically moves down the list. This eliminates the classic disease of the shared chat, where two drivers grab the same request, two more head to the same courtyard, and the rest never see it at all.
The driver works in their own dashboard — this can be the same Mini App under a different role. They open a shift, appear online, and receive a push with the order: address, distance to the customer, route, amount, payment method. Two buttons: accept or decline. From there they move the order through statuses: heading to the customer, on site, in transit, completed. Each status automatically sends the passenger a message in the chat, so nobody has to call anyone asking “where are you?”. In the dashboard the driver also sees their earnings for the shift, the number of rides, their rating, and their commission balance. At the same time, the manager sees all cars on the map, their statuses, and the order queue.
Car tracking, payment, history, and ratings in a taxi app
Once a driver is assigned, the passenger watches the car move toward them on the map, complete with the plate number, make, color, and the driver’s photo. That covers the most nerve-racking three minutes of waiting and sharply cuts calls to the dispatch desk. Payment is a choice: cash to the driver, or card right inside the Mini App via Telegram Payments or a Ukrainian acquirer, with a receipt sent to the chat. Cashless is especially good for the service: the money flows through your account, the system withholds the driver’s commission automatically, and nobody has to reconcile cash by hand every evening. For corporate clients it makes sense to add a company account with a monthly report on all employee rides.
The two features that most affect repeat orders cost almost nothing to build. The first is ride history with a “repeat” button: someone who commutes the same route every morning orders a car with a single tap, without a map or addresses. The second is ratings: the passenger scores the trip afterwards, and you finally see numbers instead of rumors — which drivers consistently hold a 4.9 and which have slipped to a 4.3, and why. The rating can be woven into dispatch: better drivers get requests first. That is the cheapest way to raise service quality without fines and difficult conversations.
Why your own Mini App pays off better than aggregator commissions
Let’s do simple math. A service with twenty cars, each doing ten rides a day at an average ticket of two hundred hryvnias, turns over about 1.2 million hryvnias a month. An aggregator commission of fifteen to twenty percent means at least 180 thousand hryvnias every month, forever. Your own Mini App is a one-time build and then only hosting, maps, and acquiring — a few thousand hryvnias a month. The project pays for itself within the first months. And more important than the money: you keep the customer base, their ride history, and a direct communication channel, instead of someone else’s app that can raise its commission tomorrow or cut you off at its own discretion.
On timelines: a basic ride-ordering flow in Telegram — map, points A and B, fare calculation, dispatch among drivers, and a driver dashboard — takes roughly four to six weeks. A full system with real-time map tracking, cashless payments, ratings, payroll reports, and analytics runs from eight to twelve weeks. The typical mistake is trying to replicate a big aggregator’s full feature set at once and getting stuck for six months without a single ride. The working path is to launch the core, put real drivers on it, and refine based on their feedback. At Devlly we build exactly these systems: the passenger Mini App, the driver dashboard, the dispatch panel, and the backend as one solution shaped around a specific service’s processes.