A delivery flow for both sides
Connected parcel details, map-based pickup and delivery locations, driver discovery and order status in one application with switchable sender and driver roles.
A mobile marketplace connecting parcel senders with drivers across Lithuania. The Fastify backend manages delivery orders and price proposals, while Socket.IO carries live driver locations and negotiation updates. Stripe Connect handles upfront payments and driver payouts, with sender and driver roles available in a single account.
I independently built the sender and driver mobile experience, Fastify backend and PostgreSQL database, including order management, live tracking, price negotiation and Stripe Connect payments and payouts.
Connected parcel details, map-based pickup and delivery locations, driver discovery and order status in one application with switchable sender and driver roles.
Used Socket.IO to carry price proposals and decisions between drivers and senders, so both sides can agree on a price within the order flow.
Streamed driver locations to the sender over Socket.IO, giving the order screen a live view of the parcel’s journey.
Integrated upfront card payments with Stripe Connect accounts and driver payouts, connecting the delivery marketplace to its payment lifecycle.
Connected vehicle registration and bank-account setup to driver onboarding, with earnings and order history available after deliveries.
Google and Microsoft OAuth plus email + password with Argon2 hashing, email verification and SMS/email password reset.
Real-time alerts for order events, price proposals and delivery status via Expo Notifications and Firebase Cloud Messaging.
Drivers track completed and pending earnings; senders see their full order and payment history.
Fastify with TypeBox schemas validating every request/response over Drizzle + Kysely on PostgreSQL.
Full EN / LT localization with i18next, plus profile editing, help center and in-app suggestions.