Now boarding in Sri Lankav2.0 · 2026

Sri Lanka's intercity bus network,
finally in your pocket.

Search routes. Pick your seat. Track the bus in real-time. From Colombo to Jaffna — every operator, one app.

What it does

One app for every bus, every route, every seat.

  • 01Search every operator across the island
  • 02Pick the exact seat with a gender-aware map
  • 03Pay securely · receive a QR ticket instantly
  • 04Watch the bus move on the map until you board
iOS·AndroidFREE TO DOWNLOAD
Tavo customer app — Explore
120+
Intercity routes
9 / 9
Provinces covered
1000 m
Stop proximity engine
<200 ms
Live tracking refresh
01 / 04For passengers

Everything you need before, during, and after the trip.

Tavo replaces the printed timetable, the ticket counter queue, and the guesswork of when the bus will actually show up. Built for daily commuters and once-a-year holiday travellers alike.

Route search

Find every operator running your route — filter by departure window, AC vs non-AC, price, and operator rating. Save your favourite routes for one-tap re-booking.

01

Interactive seat map

Pick the exact seat on the actual bus layout. Gender-aware seat filtering keeps preferences respectful and clear. Hold a seat for 8 minutes while you check out.

02

Secure checkout

Pay with card or local payment methods through a PCI-compliant gateway. Idempotency guards mean you never pay twice — even with a flaky connection.

03

QR ticket

Your ticket lives on your phone. Conductors scan it. Export to PDF, share with family, or add the trip to your calendar with a tap.

04

Real-time tracking

See the bus move on the map as it travels. Each stop on your route is marked complete the moment the bus arrives — no more guessing if you missed it.

05

Ratings & history

Rate the bus, the driver, and the conductor after your trip. Every past booking is one tap away — for warranties, expense claims, or just nostalgia.

06
02 / 04Real-time tracking

The bus appears on the map. The stops mark themselves complete. Nothing for you to refresh.

Colombo FortKegalleMawanellaBus here · ETA 14mPeradeniyaKandyLive positionUpcoming stop
01

The bus broadcasts its position

The conductor's device pushes GPS over a persistent connection — once every 50 metres, optimised for long intercity routes and patchy coverage.

02

Our backend validates and fans out

A Go-powered hub filters noise, samples cleanly, and rebroadcasts via WebSocket to anyone watching that trip — passengers, dispatchers, family.

03

Stops detect themselves

When the bus enters a 1000 m radius of a scheduled stop, the system fires a waypoint_arrived event. The timeline marks the stop "completed" automatically.

04

Your app stays in sync

No pull-to-refresh. No stale screens. The marker glides between updates and your ETA recalculates the moment traffic shifts.

03 / 04The passenger flow

Four screens. The whole journey.

From the moment you open the app to the moment you arrive — every screen is built to do one thing well and get out of the way.

Search trips
Search
Find every trip across every operator. Filter by time, price, or amenity.
Seat selection
Select
Pick the exact seat. Gender filters keep things respectful.
Booking confirmed
Ticket
A QR ticket — shareable, exportable, calendar-ready.
Live tracking
Track
Watch the bus approach. Stops update themselves.
04 / 04Coverage

From the Northern coast to the deep South.

JaffnaTrincomaleeAnuradhapuraBatticaloaKandyColomboEllaGalleMatara

Tavo serves the full intercity network across all nine provinces — from Jaffna in the north to Matara on the southern tip, with the central highlands and the east coast in between.

ColomboWestern
KandyCentral
JaffnaNorthern
GalleSouthern
AnuradhapuraNorth Central
BatticaloaEastern
TrincomaleeEastern
Nuwara EliyaCentral
MataraSouthern
RatnapuraSabaragamuwa
KurunegalaNorth Western
BadullaUva
Part Two

For the operators
behind every trip.

Every bus on Tavo is run by a real operator with real schedules, real crew, and real overhead. The platform gives them three purpose-built tools to keep the wheels turning.

For operators · webtavo-manager

Manager Dashboard

The web command interface for fleet operators. Live GPS, schedules, crew assignment, bookings, and revenue analytics — built on Next.js with a WebSocket pipeline to the backend.

  • Live fleet map with status indicators — en route, arrived, delayed, out of service
  • Schedule builder · route designer with waypoint placement
  • Driver & conductor assignment per schedule
  • Dynamic zone-based fare control
  • Revenue, ridership, and performance dashboards
manager.tavo.lk / dashboard
Tavo Manager dashboard
For conductors · mobiletavo-conductor

Conductor App

A field-grade Flutter app for the conductor on every bus. Background GPS, QR validation, per-stop passenger lists, and auto-arrival detection — designed to work on long routes and patchy coverage.

  • Battery-optimised background GPS · 50m distance filter
  • Mobile QR scanner for instant ticket validation
  • Per-stop boarding lists with real-time sync
  • Auto waypoint arrival detection · no taps required
  • Earnings & trip summaries at end of shift
Conductor home
Conductor trip in progress
Above all that

Admin oversight, when policy and platform meet.

At the top of the access hierarchy sits the admin panel — for approving new operators, managing RBAC across the platform, verifying permits, and watching the entire fleet from a single screen.

  • Operator & manager onboarding approvals
  • Role-based access control across all surfaces
  • Vehicle permit & driver license verification
  • Platform-wide ridership & revenue analytics
  • 1000 m proximity alerts per bus stop, fleet-wide
  • JWT + OTP hardened auth · HttpOnly session cookies
The system

Five pieces. One platform.

Tavo is not a single app — it's a coordinated stack of mobile and web surfaces, all speaking to a single Go backend over REST and WebSocket. Each piece does one job. They talk constantly.

REST · WebSocketREST · WebSocketGPS broadcastJWT · RBACTAVO · COREBackendGo · Postgres · RedisMobile · FlutterCustomerPassenger appWeb · Next.jsManagerOperator dashboardMobile · FlutterConductorOn-bus companionWeb · Next.jsAdminSuperadmin panel
tavo-customerPassenger booking appFlutter · Dart
tavo-conductorOn-board conductor appFlutter · Dart
tavo-managerFleet management webNext.js · React
tavo-adminSuperadmin control panelNext.js · React
tavo-backendAPI & real-time hubGo · Postgres · Redis
Available now

Free to download.
Book your seat today.

Tavo is available on iOS and Android. No subscription, no booking fees added on top — just the bus ticket and a calmer way to travel.

Requires iOS 15+ or Android 10+
Booking confirmed ticket
About

Built by one engineer.
For an entire country.

"Sri Lanka's intercity bus network moves millionsof people every day. The infrastructure to find a seat, pay for it, and trust that the bus will actually arrive on time was scattered across paper, phone calls, and word of mouth. Tavo is my attempt to put that all in one place — for the passenger, the operator, and everyone in between."

— Akmal Ifthikar
Builder

Designed, engineered, and shipped by Akmal Ifthikar — one engineer working full-stack across Flutter, Next.js, and Go.

Engineering footprint
  • 2× Flutter apps · iOS + Android
  • 2× Next.js dashboards · web
  • 1× Go monolith · WebSocket hub
  • PostgreSQL · Redis · Firebase
Status

Production-grade · Academic release · 2026. Available for review at github.com/ily-akmal.

FAQ

Questions, answered.

Is Tavo free to use?
Yes — the app is free to download on iOS and Android, and there are no booking fees added on top of the ticket price. You pay the operator's fare, nothing more.
Which routes are covered?
Tavo covers intercity bus routes across all nine provinces of Sri Lanka — from Colombo and the Western coast to Jaffna in the north, Trincomalee and Batticaloa on the east coast, and Galle and Matara in the south. Coverage continues to expand as operators join the platform.
How does live tracking work without draining my battery?
Your phone doesn't track the bus — the conductor's device does. It broadcasts position over a persistent WebSocket connection, and your app simply receives updates. You can have the tracking screen open the entire trip without any meaningful battery impact.
What if my payment fails or I'm double-charged?
Every booking request carries an idempotency key, so a retried request never produces a second charge. If a payment fails after the bank deducts funds, the booking is rolled back automatically and the refund is initiated through the payment gateway within the standard settlement window.
Can I cancel or change a booking?
Cancellation policies are set by each operator — the cancellation window and refund percentage are shown clearly before you check out. Once booked, cancellation is one tap from your tickets list.
I'm a bus operator — how do I get listed?
Reach out through the operator contact form below. Approved operators get access to the Tavo Manager dashboard, the Conductor app for their crew, and a slot in the live booking feed within a few business days of verification.
Is my data safe?
Auth runs on JWT with short-lived sessions and refresh tokens stored in secure device storage. Web surfaces use HttpOnly cookies and middleware-enforced route guards. Payment data never touches our servers — it's handled by the gateway directly.
For operators

Run a fleet?
Let's talk.

If you operate one bus or a hundred, Tavo can put your schedules in front of every passenger in Sri Lanka — and give your crew the tools to manage the day.

Or reach out directly
LocationSri Lanka
ResponseUsually within 24 hours
Operator sign in