← back to work
04ev-charging.tsxMobile App

EV Charger Sharing

ChargeShare

A two-sided app connecting EV owners who need charging with hosts who have chargers to share — discover chargers on a map, mutually match, book real availability and pay securely, backed by a type-safe API and analytics-rich admin dashboard.

React Native (Expo)TypeScriptReact 19ZustandTanStack Query/RouterFastifyTypeBoxDrizzle ORMKyselyPostgreSQLSocket.ioStripe ConnectMapboxSharpSupabaseCloudflare R2NodemailerRechartsNextUIFirebase
drop screenshot
Mobile App · 01
drop screenshot
Mobile App · 02
// key_features
Interactive Map Discovery
Mapbox map with clustered markers (Turf/GeoJSON) and real-time states: available, matched and selected.
Two-way Matching
Tinder-style matching where renters and hosts must mutually match before they can message or book.
Real-time Messaging
Socket.io chat with instant delivery, room-targeted events, read-status tracking and auto room creation on match.
Booking & Scheduling Engine
Multi-step flow with custom calendar and wheel date picker, hourly slots from each host’s availability and server-side double-booking prevention.
Stripe Connect Payments
Payment Intents, connected accounts for host payouts, platform fee calculation and webhook reconciliation.
Transactional Email
Handlebars HTML templates (Nodemailer) for verification, match alerts, booking confirmations and Stripe onboarding.
Server-side Image Pipeline
Uploads optimized with Sharp to AVIF and resized before storage on Supabase; presigned delivery via Cloudflare R2.
Push Notifications
Expo + Firebase (FCM) for match requests, new bookings and incoming messages.
Multi-step Onboarding
Image upload, charger/vehicle specs, weekly availability scheduling and a map-based location picker.
Dual-role Architecture
A single account operates as host or renter, with role-aware theming and a switch-account flow.
Admin Dashboard
Revenue, bookings, growth, verification-funnel and engagement analytics with Recharts, plus a generic table explorer with XLSX export.
Type-safe API + Monorepo
Fastify with TypeBox schemas validating every request/response over Drizzle + Kysely; mobile, web and API in one repo.
© 2026 marius mariakinas · all rights reserved · built from scratch