← Back to work

Package Delivery Marketplace

React NativeExpoExpo RouterTypeScriptNativeWindZustandTanStack QueryFastifySocket.IOPostgreSQLDrizzle ORMKyselyBunStripeMapboxExpo NotificationsNodemailer

Built a peer-to-peer package delivery platform operating in Lithuania that connects senders with drivers, functioning as an Uber-style marketplace for local parcel delivery. The app is bilingual (English/Lithuanian) and uses EUR currency.

Key Features

Order Creation

senders specify package size (S/M/L), collection & delivery addresses (via Mapbox map/geocoding), preferred date/time slot, weight, and price; payment is taken upfront via Stripe.

Map-based Order Discovery

drivers see available orders on an interactive Mapbox map and accept them with a slide-to-confirm gesture.

Price Negotiation

drivers can propose alternative prices on orders; senders review, accept, or reject proposals in real time.

Real-time GPS Tracking

live driver location streamed to senders via Socket.IO during active deliveries.

Full Order Lifecycle Management

pending → accepted → in transit → completed, with auto-expiry of unclaimed orders via a cron worker.

Stripe Payments & Payouts

card payments, Apple Pay, Google Pay for senders; Stripe Connect accounts with identity verification, IBAN bank linking, and automated payouts for drivers.

Push Notifications

real-time alerts for order events, proposals, and delivery status changes via Expo Notifications.

Route Planning & Navigation

Mapbox Directions API for distance/duration calculation with deep links to Apple Maps, Google Maps, and Waze.

Driver Onboarding

vehicle registration (type, plate, brand, VIN, insurance), identity document upload, bank account setup.

Authentication & Security

email + password with Argon2 hashing, email verification codes, JWT tokens, password reset flow.

Order History & Earnings Dashboard

drivers see completed/pending earnings; senders see payment history.

Multi-role Support

users can switch between sender and driver accounts.