Citylink
Romania's first mobility app to put taxi, ride-hailing, car-sharing and bike-sharing behind one account — taken from MVP to 100,000+ installs and 30,000+ rides in the first year.
- Year
- 2018–2021
- Timeline
- 3 years
- Team
- 20 engineers
- Stack
- 9 technologies
100K+
App installs
30K+
Rides, year one
20
Engineers led
4
Mobility modes
Taxi, ride-sharing, car-sharing and bike-sharing in one app. Figures measured against the process this platform replaced, twelve weeks after full rollout.
The problem
Riders in Romania were juggling one app per mode: a taxi dispatcher on the phone, a ride-hailing app for peak hours, a separate card and account for car-sharing, and yet another for the bikes at the corner dock. Operators had the mirrored problem — four fleets, four sets of software, no shared view of demand.
The approach
One account, one payment method, four modes. The hard part was not the app; it was making dispatch and billing behave the same way whether the vehicle was a taxi with a meter, a partner driver, an unattended car unlocked over IoT, or a shared bike released from a dock.
Bike-sharing added its own constraints: per-minute billing with a free grace period, dock and geofence enforcement, battery and lock telemetry, and rebalancing reports for the operations crew moving bikes overnight.
Dispatch and billing were pushed off the request path from the start, onto Kafka and Amazon SQS, so a burst of Friday-night demand queued rather than collapsed.
The build
AWS from day one, with WebSocket channels carrying live vehicle position and ride state to riders, drivers and the operations room. Backend across Laravel and C# .NET services, native iOS in Swift and Objective-C.
A twenty-person team across backend, mobile and QA was hired and run in parallel with the build — the organisation and the product were designed together.
The stack
PHP 7 / Laravel and C# .NET services, Node.js edges, MySQL and PostgreSQL, Redis and Memcached, Kafka and Amazon SQS for asynchronous dispatch and billing, WebSockets for live state, Stripe for payments, IoT for the car-sharing fleet.
Technologies
- Laravel
- C# .NET
- Node.js
- PostgreSQL
- Kafka
- Amazon SQS
- WebSockets
- IoT
- AWS
Tell us what you’re trying to ship
A first call is thirty minutes and costs nothing. Bring the problem, not a spec — working out what to build is the part we are good at.
Or email office@symphonyapps.ro. We reply within one business day, in English or Romanian.
