SwecoRide: a BankID-verified ride-share platform for Sweden
SwecoRide is a live ride-share and carpool product built for Sweden: riders and drivers match in real time, drivers verify identity through BankID, and payouts run through Stripe Connect. The stack is NestJS and PostgreSQL with PostGIS for location logic.
·
Prefer WhatsApp or email?
The problem
A ride-share product for a regulated Nordic market needs more than a map and a matching algorithm. Sweden expects real identity verification before someone gets in a stranger’s car, and drivers need to actually get paid without the operator holding funds in limbo.
The brief for SwecoRide combined three hard requirements in one product: location-accurate rider-driver matching, BankID as the identity layer trusted across Swedish digital services, and Stripe Connect so driver payouts are handled correctly rather than bolted on as a manual process.
What was built
A NestJS API with PostgreSQL and PostGIS so location queries — nearby drivers, route distance, matching radius — run as real geospatial queries instead of approximate math on raw coordinates.
BankID integration sits in front of the driver (and optionally rider) onboarding flow, so identity verification happens through the same system Swedish users already trust for banking and government services, rather than a custom ID-upload form.
Stripe Connect handles the payout side: fares collected from riders are split so drivers receive their portion automatically, instead of the operator manually reconciling who gets paid what at the end of each period.
Core features
- Real-time rider-driver matching
- Location and route logic via PostGIS
- BankID identity verification
- Stripe Connect driver payouts
- Ride request and status flow
- Driver and rider mobile experience
Architecture & stack
- React Native
- NestJS
- PostgreSQL
- PostGIS
- Stripe Connect
- BankID integration
TODO(owner): add a simple architecture diagram asset for SwecoRide if a screenshot is available.
Hard problems solved
Matching that respects real geography, not straight-line distance
Naive matching compares raw latitude/longitude and assumes the nearest driver is the best driver. PostGIS lets matching account for actual distance and search radius as proper geospatial queries, which matters once a river, a lake, or a one-way street separates two points that look close on a flat map.
Identity verification that Swedish users already trust
Building a custom "upload your ID" flow would have added friction and trust problems in a market where BankID is the default way people prove who they are online. Wiring BankID into onboarding meant the verification step felt native to the market instead of imported from elsewhere.
Payouts that do not require manual reconciliation
Collecting a fare and paying a driver are two different money movements with different timing and tax implications. Stripe Connect was structured so the split happens as part of the transaction rather than as a manual transfer the operator has to remember to run.
Outcome
SwecoRide is live at swecoride.se with matching, BankID verification, and Stripe Connect payouts working end to end for the Swedish market.
TODO(owner): confirm any publishable ride volume, driver count, or regional coverage numbers before adding metrics to this case study.
Client note
“End-to-end ownership mattered. Matching, BankID, Stripe Connect — one developer who understood the whole SwecoRide product, not just a UI ticket.”
FAQ
Why does SwecoRide use PostGIS instead of plain coordinates?
PostGIS lets matching and routing run as real geospatial queries — distance, radius, route proximity — instead of approximating with raw latitude/longitude math, which matters for accuracy in real road networks.
How does BankID fit into the onboarding flow?
BankID verifies driver (and optionally rider) identity using the same system Swedish users already trust for banking and government services, rather than a custom document-upload process.
How are driver payouts handled?
Stripe Connect splits each fare so the driver’s portion is routed automatically, instead of the operator manually transferring funds after the fact.
Can this pattern work outside Sweden?
The architecture — PostGIS matching, pluggable identity verification, Stripe Connect payouts — transfers to other markets. The identity layer would swap for whatever verification method that market trusts (BankID is Sweden-specific).
What would a similar ride-share MVP cost?
A scoped ride-share MVP (matching, basic identity checks, payouts) typically falls in the custom SaaS band from $4,999+ given the regulatory and payment complexity. See the ride-sharing app development page for a breakdown.
Send a short brief
Building something in this space? Share goals, timeline, and budget band — you get a clear scope and USD quote.
Talk on WhatsApp / emailRelated: Matching hire page · Matching service page · how to build a ride sharing app · bankid integration guide · All work