Service · App development

Build a taxi app for your own transport company.

Your own rider app, a driver app and a dispatch back office working as one, custom built for your TTO, regional taxi organisation or patient transport company. Your own brand, your own pricing, your own customer base, integrated with your BCT and your invoicing. We design and build these apps natively or in Flutter, with a matching engine that copes with both the quiet hours and the rush hour.

Rider + driver appDispatch back officeReal-time matchingBCT integrationKIWA / TX Keurmerk

A taxi app is not an Uber clone.

Searching for "taxi app development" will, nine times out of ten, get you a quote for an Uber clone from an offshore template factory. A nice screenshot, screen flows lifted from a marketplace, and a price that seems too good to be true. Three months later your licence holder has an app that doesn't log rides to the Boordcomputer Taxi, in which the driver can't see whether a ride falls under Wmo transport, and in which the dispatch system doesn't understand what a combined ride is. That is the problem we solve.

We build custom taxi apps for TTOs in Amsterdam and Rotterdam, regional taxi companies with multiple ranks, care transport providers working under Wmo and Valys, executive transport firms with fixed corporate contracts, and courier transport that carries parcels as well as passengers. The technical building blocks look alike, but the reality of a driver doing a wheelchair ride for the CAK at half past six in the morning differs from a driver starting an airport run at half past two at night. An app that only handles the street segment well excludes a serious part of the Dutch transport market, and an app that only copes with contracted transport leaves out the peak demand again.

Our approach differs from that of a standard app developer: the complexity isn't in the rider app's UI. That is finished in a few sprints and largely resembles what you're used to. The complexity lies in the combination of real-time matching between demand and supply, the fare engine that must mix zone, distance and waiting-time tariffs with agreements that differ per client, and the integration with the Boordcomputer Taxi, which is mandatory in the Netherlands. Eighty per cent of the project goes into that, and it determines whether your own taxi platform will still be more profitable a year after handover than a franchise model.

What we build differently: a platform under your brand, with your pricing, your customers and your data, not a marketplace that gradually moves your drivers onto someone else's marketplace. Native or cross-platform, integrated with exactly the systems you use, and a dispatch workspace where the controller can work in the office without first spending a week on a course. We deliver the code, you own the IP, and you manage it yourself or with us: no licence per ride, no revenue percentage that climbs as you succeed.

Three flavours of taxi platform.

The right setup depends on what you run and who your clients are. We'll work out which fits during the first conversation. Many operators start with the first two components and grow into fully dispatched transport over time.

Compact project · fixed sprint budget

Rider app with simple dispatch

A mobile app for customers to request a ride, either immediately or booked in advance, plus a lightweight dispatch workspace for your control room. Suited to regional taxi companies moving from phoning the control room to their own app for their existing customer base. Your own logo, your own pricing, payment via Mollie or Adyen or cash on completion, and a short feedback loop between ride and star rating. No marketplace, no unfamiliar drivers, no surge pricing, just your own fleet, easier to reach.

Ride requestMollie / AdyenRatingPDF ride log
Mid-sized project · fixed sprint budget

Rider and driver app with matching engine

The same rider app plus a full driver app for your drivers, with a real-time matching engine that assigns ride requests based on distance, vehicle suitability (wheelchair access, child seat, executive), availability and driver rating. The dispatch back office shows the entire fleet on a map, lets you make manual overrides, and gives insight into which bookings the automatic matching handles and which it doesn't. Suited to TTOs and regional taxi companies with their own fleet of anywhere from a handful to several dozen cars that combine street hails with contracted transport.

Matching engineReal-time WebSocketDispatch mapFare engine
Larger project · fixed sprint budget

Full platform with BCT, healthcare and B2B integration

The full package: rider app, driver app, dispatch workstation, scheduling, and a fare engine handling several clients side by side, integrated with the Boordcomputer Taxi (BCT) for mandatory trip registration, integrated with care-transport portals (CAK / Wmo / Valys), client-by-client billing integration, and management reporting covering conversion, no-show rate and average waiting time. Suited to transport organisations that run street-hail work alongside substantial care transport or contracted B2B transport, and want to take the load off their central control with automation that genuinely works automatically.

BCT integrationWmo / Valys portalMulti-clientReporting

What you get at the end.

A production-ready taxi platform under your own brand, with your own data, plus everything needed to run and extend it. We don't deliver a black box: you own the code, the customer list, the ride data, the release pipeline and the App Store account.

  • Rider app for iOS and AndroidNative (Swift, Kotlin) or cross-platform (Flutter, React Native), with ride requests, advance booking, fare estimates, live tracking, payment, rating and ride history.
  • Driver app for iOS and AndroidJob acceptance, navigation via Mapbox, HERE or Google, in-trip fare calculation, waiting-time buttons, end-of-trip settlement, and integration with the BCT in the vehicle.
  • Dispatch workstation as a single-page applicationFor the control room: a live map view of the fleet, ride assignment, ETAs, no-show detection, exception flows, and manual overrides for when the matching engine gets it wrong.
  • Matching engine and fare engineDriver assignment based on distance, suitability and schedule, plus a pricing layer that combines zone and per-kilometre rates, waiting time, night tariffs and client-specific agreements. Covered by automated tests, because this is where the commercial risk lies.
  • Payment and invoicing flowOnline payment via Mollie or Adyen for the street-hail segment, plus a consolidated invoicing flow per client for contracted transport. See also our payment platform service.
  • Driver onboarding flowDocument upload (taxi licence, VOG certificate, KIWA card), screening checklist, integration with your HR administration and an approval workflow for the planner. One place where the status of every driver lives.
  • BCT and care-transport integrationsIntegration with Boordcomputer Taxi providers (CMT, Cabbie, EuroCabbie) and with client portals of health insurers, municipalities and the CAK for Wmo and Valys transport.
  • Reporting and management dashboardKPIs for the management team: number of trips, average waiting time, no-show rate, margin per client, revenue per driver and capacity utilisation per time slot. Exportable to your BI tool or accountant's records.
  • Codebase, documentation and ownershipComplete source code, architecture document, incident runbook and a clean ownership handover package. No lock-in, no revenue percentages.
  • Maintenance contract (optional)Monitoring, iOS and Android OS updates, security patches, app store certificate renewals and ongoing development. Fixed monthly fee, with four response-time levels.

Who we build taxi apps for.

Six patterns we see again and again in the Dutch transport market. If you recognise your organisation in one of them, we are happy to talk further, even if you don't yet know whether a dedicated app is the best answer.

TTO

Licensed taxi organisations

Taxi companies in Amsterdam, Rotterdam and The Hague serving street-hail work who don't want to lose their drivers to an international marketplace. Your own app means you keep customer contact, set your own tariffs and retain control over your relationship with the municipality around taxi rules. An essential prerequisite: integration with the Boordcomputer Taxi and with your taxi operator's card system is not optional but the starting point.

Regional

Regional taxi companies

A regional taxi company with its own fleet of several dozen cars, a fixed customer base and a mix of street trips, business transport and subscriptions. So far scheduling runs through phoning the control centre, and the whole organisation feels it no longer scales. An in-house rider app with dispatch integration replaces phone traffic for repeat business and frees the control centre for the more complex bookings that really need attention. See also our transport software service page.

Patient transport

Wmo, Valys and seated patient transport

Transport providers who drive for municipalities, the CAK, Valys or health insurers: seated medical transport to dialysis and rehabilitation, Wmo transport for people with an assessment, or wheelchair transport for institutions. Trips are imported from the client portal, combined into efficient routes and carried out by drivers with the right paperwork. Reporting afterwards has to be accurate to the kilometre and the minute, with no room for manual correction.

Executive

Business and executive transport

Transport providers that drive for law firms, head offices and hotels, with fixed contract clients, a professional driver pool and higher expectations around vehicle standard and service level. Advance booking, sensitive cost-centre administration per client, periodic consolidated invoices and reporting that lets a managing director or fleet manager see exactly what transport costs a department has incurred. Here the app is the transport provider's calling card to the end user.

Courier

People and parcels in one fleet

Operators who run urgent parcel jobs alongside passenger transport: laboratory samples, legal documents, industrial spare parts. The dispatch engine recognises which type of job it is and assigns it to the right driver, with the right vehicle, on the right route. Insurance and liability for goods transport are recorded separately, and the fare engine can calculate hybrid jobs.

Specialist

Specialist and international

Niche transport such as school transport for children with an assessment, pupil transport for municipalities, transport for asylum reception centres, or international taxi transport to Schiphol and Belgium. Here an app helps not only the operation but also the tender: a client who can follow the status of every trip in their own client portal weighs that heavily when choosing a transport provider. Your own platform gives you that as an award criterion.

Not yet sure about a large project?

Test your idea first: a working prototype in 1 day

With OneDayBuild, we turn your idea into something tangible in one day for €1,150, so you can see whether further development is worth the investment. Decide to go ahead with the full build? Then we credit the full cost.

Explore OneDayBuild →

How a taxi app project runs.

1

Introduction

A conversation in which we learn what kind of transport you run, how your dispatch centre works today, which BCT supplier is installed in your vehicles and which client portals are involved. We also look at your fare structure, because a lot of hidden complexity sits there: zone prices, per-km prices, waiting time, surcharges, night and weekend rates, plus deviating agreements per business contract. The clearer the picture at the start, the less we have to correct along the way. A fare engine that has to be rebuilt halfway through is expensive.

2

Planning and user research

A workshop with your control-room staff and interviews with three to five drivers. We ride along, sit with the control room and look over the shoulder of the current BCT. The reality of a driver who has to accept a job at five in the morning, gloved hands in a cold car, is different from what seemed logical in a Figma flow in the office. At the end: a concrete scope, a considered division of roles between automatic matching and manual dispatch, and clear agreements about what is and is not included in phase one.

3

Building in sprints

Every two weeks, a working build of rider, driver and dispatch on a staging environment. We first build the happy flow from trip request through to settlement, then add the fare engine, then matching, then the BCT integration and, last, the client portals. You test along the way, your controllers test along the way, and one or two drivers take test trips. The fare engine and matching engine get extra automated tests because a calculation error on a trip multiplies with trip volume: a few cents per trip across thousands of trips a month is real money.

4

Pilot and rollout

We start with a pilot in one segment, often the street-hail segment at a single rank or one client contract, and then expand in phases. Short training for your control-room staff and drivers, plus an open hour in which a driver can practise with the app without pressure. After that we add one target group per week. After rollout, many clients schedule a second release cycle for whatever surfaces in use. An app that is really on the road inevitably produces new ideas that were never conceived on a whiteboard.

5

Ongoing development

A taxi platform is not a project that stands still after going live. Apple and Google release new OS versions every autumn in which background permissions and location rights behave slightly differently again, clients set new requirements for their reporting, and the BCT regulations shift along with the Ministry of Infrastructure and Water Management. We run ongoing maintenance for clients who do not want to set up their own development team, or we hand over knowledge so that an in-house developer or another agency can take over.

Frequently asked questions.

What clients usually want to know before starting on their taxi platform.

Why build your own taxi app when Uber, Bolt and Free Now already exist?
Three reasons. One: with a marketplace, you pay a commission per ride (typically somewhere between 15 and 30 per cent), which structurally erodes your margin. On your own volumes, that quickly exceeds the build and running costs of your own platform combined. Two: the customer base belongs to the marketplace, not to you. If you stop or switch, you lose your repeat customers. Three: a marketplace serves a single workflow: a ride from A to B. Care transport with a Wmo referral, school transport with a pick-up protocol, business transport with cost-centre coding, or contract transport with a monthly consolidated invoice is simply not part of their product. If you run contracted or care transport alongside street work, you can't really do without your own platform.
Does your app integrate with the Boordcomputer Taxi (BCT)?
Yes, an integration with the BCT is non-negotiable for Dutch taxi operators, as it is legally required for order, trip and break registration. We integrate with the existing BCT providers (CMT, Cabbie, EuroCabbie and their variants) via their API or via a data logger in the vehicle. The driver app automatically starts a trip in the BCT when a job is accepted and closes it at final settlement, so the driver doesn't have to operate two screens at once. The trip data is cross-checked against the central system, and discrepancies are flagged for manual review. For those who don't yet have a BCT, we advise which provider best suits your fleet, based on experience.
What about KIWA, the TX Keurmerk and the Wp2000?
The Wet personenvervoer 2000 (Wp2000) and the requirements arising from it, covering the driver's card, BCT registration and the TTO rules in major cities, form the legal basis. For care transport, the CAK quality framework also applies, along with requirements around wheelchair transport and, where relevant, medical assistance. Our app supports document management for the driver's pass, VOG and, where relevant, the TX Keurmerk within the driver onboarding flow, with automatic alerts when a document is about to expire. Legal responsibility remains with the operator, but you get a workspace where you can see the status of every driver and every vehicle in one place.
How does the matching engine work?
At its core, the matching engine combines an ETA calculation (which driver can reach the pickup in how many minutes), a suitability filter (does this vehicle have a wheelchair ramp, a child seat or an executive segment) and a priority layer (which driver has been waiting longest, which is rated higher, which has priority under the client contract). For street transport, it is mainly ETA-driven; for healthcare transport, suitability becomes decisive; for business travel, a specific driver can be linked to each client. For more complex scenarios, we combine it with an AI development layer that, based on historical trip data, learns when a trip should be dispatched manually rather than automatically, typically where manual overrides keep showing the same patterns.
Which technology do you use?
For the mobile apps, we typically work with Flutter for cross-platform (one codebase for iOS and Android, which reduces maintenance), or go native with Swift and Kotlin if the performance requirements around background tracking and battery impact justify it. For the driver app we often prefer native, because continuous location tracking and background operations are more sensitive there. For the dispatch workstation we build an SPA in React or Vue with a real-time WebSocket connection to the matching engine. For mapping we use Mapbox, HERE or Google Maps Platform; the choice depends on where you operate and what the licence costs do at your volume. The backend runs on Node.js or Go in a container environment (GCP, AWS or Azure), with Postgres as the primary datastore and Redis for real-time state.
How do you handle payments?
For the street segment, we connect by default to Mollie or Adyen, with iDEAL, credit card, Apple Pay and Google Pay as payment methods in the rider app. For business and contracted transport, we work with consolidated invoices per month or per order period, generated from trip records and linked to your invoicing system (Exact, Twinfield, Yuki, AFAS or a custom API). For healthcare transport, claims run through the client portal of the health insurer, the CAK or the municipality; we build the export or the direct integration, depending on what the portal offers. Combinations are common: a operator might receive payment for a street ride in cash or via Mollie, and also send a monthly consolidated Wmo invoice to the municipality at the end of the month.
What about GDPR and data protection?
A taxi platform handles sensitive data: pick-up and drop-off addresses (which can often be traced back to medical situations in patient transport), location history per driver, payment details and, in healthcare transport, indication data. As standard, we carry out a DPIA at the start, provide a data processing agreement template for your clients, and set retention periods in line with GDPR as well as the additional requirements imposed by health insurers. Encryption at rest and in transit is standard, an audit log of sensitive actions is built into the dispatch workstation, and retention periods are enforced in code rather than through a manual procedure.
Can you also build just the dispatch system?
Yes. For some clients the rider and driver apps are the priority, for others the pain lies in the central office, which runs entirely on loose Excel files. We can also build the dispatch system as a standalone SPA that integrates with your existing rider or driver environment, or work in phases: first get dispatch right, then connect the driver app, and only then take the rider app to market. We determine together how to split the project into phases, based on where the greatest losses lie today.
Do you have experience with patient transport specifically?
Yes, patient transport is a key segment in our portfolio. Wmo funding runs through municipalities and the SVB, Valys through Transvision, and seated medical transport through health insurers. Each has its own portal formats, tariff structures and reporting rules. The combination of eligibility checks (is this client actually covered under this contract), co-payment administration, and the strict rules on shared rides (which clients may travel together in one vehicle) is not in standard taxi software. That is typically where we build custom software.
Who owns the code and the data?
You do. We deliver the complete source code, database schemas, build pipelines, deployment scripts, and the App Store and Google Play accounts in your name. The data lives in your cloud or with a hosting partner of your choice. If you later want to work with another agency, or take it in-house, you can: no lock-in on the technology, no percentage of revenue per ride, and no licence fees that grow as you grow. We earn from good work that lasts, not from clients who are locked in.
What determines the cost of such a project?
The biggest cost drivers are: the complexity of the fare engine (a single tariff versus multiple clients with different price lists), the number of integrations (BCT, invoicing, patient transport portals, payment providers), how much matching automation you need versus manual dispatch, and whether several user groups with different flows must be supported (street only versus street plus medical plus business). We work in sprints with a fixed sprint budget, so there are no surprises and you can steer scope sprint by sprint. A scoping conversation gives a good picture of the likely range for your specific case.
How long before we can go live?
A first pilot with a rider app and light dispatch for one segment can be running within a few sprints. A full platform with a driver app, matching engine, BCT integration and multi-client invoicing is a programme of several sprints. We often roll out in phases so part of your fleet can start while we keep building. That gives your organisation room to adapt and gives us feedback we can act on before the next user group. Many large operators deliberately choose a slower rollout to avoid disrupting operations.

Talk to us about your taxi platform.

A half-hour introductory meeting, with no obligation. Tell us what your transport looks like now. We'll think along with you, give direction, and be honest about whether a platform of your own is the right answer or an existing package will do just fine. Sometimes the right first step is a better dispatch workstation on top of your current BCT; sometimes it really is a complete rider and driver app of your own. We'll also tell you if we think you're better off with an off-the-shelf package that we don't build. You can also email directly at fabian.vandijk@appfront.nl, or take a look at our other app development service pages for related mobile solutions.

Edit content