07 Case study

Tanna Travels

Tanna runs 15 AC departures a day between Bhavnagar and Ahmedabad on a shared operator platform. We rebuilt the site and the whole booking flow around their own timetable, seat map and boarding points, then added the office layer: WhatsApp booking in Gujarati, a voice line for “where is the bus”, automatic refunds, parcel messages, seat-yield alerts and a 5 AM owner report.

Client
Tanna Travels, Bhavnagar (concept, unsolicited)
Sector
Intercity bus operator / booking and operations
Year
2026
Role
Design and build
Engagement
Working concept, one evening
15Daily departures, one road
41Seats, drawn as the coach is laid out
6Office agents
88%Desk time freed, estimated

The problem

The live site does what the operator platform gives every operator: a search box, a festival popup, a seat map and a separate cancellation login. Passengers who land from Google cannot see where the bus is, and the two-desk office answers about 300 calls a day, most of them the same three questions.

Nothing about the operation is the problem. Fifteen departures a day, thirteen boarding points, ₹362 a seat and a 35-year name in the city are the assets. The web layer just does not carry them.

The approach

We captured the real data first: every departure time, fare, GST line, the 2×2 41-seat layout with its ladies seats, and every boarding and dropping point with its offset from departure. The demo is honest because none of it is invented.

Then a booking flow in five visible steps: bus, seats, passengers, pay, ticket. Tomorrow is pre-selected, the seat map refuses a male passenger on a ladies seat the way the counter does, and the ticket goes to WhatsApp with a live tracking link.

Tracking, parcel booking with LR numbers, and a passwordless My Bookings page round out what the counter does today.

The office layer is the pitch. Six agents on top of the same data, each with a shadow week where staff see every reply before it sends, and a table of nine desk hours a day becoming about one.

Architecture

A Next.js front end that can sit on the operator's existing backend, with the agents reading the same seat inventory and GPS feed the site does.

The hard parts

Gujarati is not a translation layer

Passengers write “6 વાગ્યાની, નારી ચોકડી થી” and expect the agent to know Nari Chokdi is a boarding point at 06:15. The agent has to hold the operator's own vocabulary, not a dictionary.

Ladies seats are a rule, not a colour

The live seat map marks them pink. The demo enforces them at passenger entry, which is where the counter staff enforce them today.

Nobody gets replaced

The proposal moves two people from reading out seat numbers to chasing uncollected parcels and empty night buses. Estimates are marked as ours until two weeks of call logs replace them.

Outcome

A clickable demo with the full flow and a 13-slide proposal, sent to the operator as the first message. The outreach opens with something built, not with a claim about their business.

Concept work. Tanna Travels has not commissioned or endorsed it. Their logo and coach photos appear in the demo only.

Next.js 16React 19TypeScriptTailwind 4WhatsApp Business APIVoice agent (EN / HI / GU)Claude
Next case study 01KaribuKit