Skip to content
Amanuel Yizelkal
All work03 / 12

The telebirr mini-app EV drivers use to find a charger, top up and charge

Live in telebirr

Role
Mini-app developer (frontend)
Year
2025
Status
Live
Links
Private
  1. telebirr SuperApp
  2. Mini app (React)
  3. telebirr payments
  4. EV platform API
  5. Chargers (OCPP)

EV

I built the driver-facing mini-app of an EV charging platform, running inside the telebirr SuperApp: sign in automatically, find a station and its connectors, scan a charger's QR code to start, watch the session live with a cost breakdown, top up the wallet through telebirr, and keep receipts.

The problem

EV drivers already pay with telebirr every day. Charging had to work where they already are: find a charger, pay, start and stop a session, and see what it costs, without installing another app or creating another account.

Approach

I designed the mini-app mobile-first from a written design spec (auth, home, QR scan, charging detail, records, recharge, profile, messages, support and receipts) and wrote a backend handoff document for each integration point: automatic sign-in, deposit polling, connector data and the cost breakdown, so the platform team knew exactly what the app expects.

Architecture

A React 19 and Vite single-page app that runs inside telebirr's mini-app container. It calls the charging platform's mini-app endpoints with a bearer token, and pays through the telebirr SDK (startPay, falling back to tradePay). After a top-up it polls the deposit status every 3 seconds for up to two minutes, then refreshes the balance. It's also packaged with Capacitor for Android and served by Caddy in Docker.

Features

  • Automatic sign-in inside telebirr, from app start or the auth screen
  • Wallet top-up with the telebirr SDK and deposit-status polling
  • Station map and list with per-connector details
  • Scan-to-charge with the camera (ZXing QR decoding)
  • Live charging detail with an electricity and service cost breakdown
  • Charging records and downloadable PDF receipts
  • Messages, support and feedback inside the mini-app
  • Backend handoff docs for every integration point

Stack

React 19, Vite, Tailwind CSS 4, telebirr mini-app SDK, Supabase JS, Nanostores, Framer Motion, ZXing, Capacitor, Docker, Caddy

Results

  • Live inside telebirr, used by EV drivers to charge and pay

“A mini-app lives inside someone else's app, under their rules and their network. Writing down exactly what each screen needed from the backend, and handling every slow or failed payment explicitly, is what made it reliable.”

Next projectQuestline
Amanuel Yizelkal