Skip to content
Travel & TransportationA Viznetic productLive in production

BookMyYaan — Bus & Hotel Booking Platform

BookMyYaan logo

Your next journey starts here. Our own travel product, live at bookmyyaan.com: book bus tickets on real operator seat maps and hotel rooms with rates, inclusions and cancellation terms shown before payment. Built on provider-neutral adapters, so inventory suppliers can change without touching the public contract.

BookMyYaan — Bus & Hotel Booking Platform
BookMyYaan logoBookMyYaan
Live
Bus & hotel
140K+
Destination rows
240
Backend tests
Razorpay
Checkout
The challenge

Travel booking in India does not usually fail at the search box. It fails at the seams: a fare that moves between the result and the payment screen, a supplier that times out halfway through a booking and leaves nobody sure whether a ticket exists, a cancellation whose refund you only learn after you have committed to it. Building our own platform meant those seams were ours to close, not a vendor’s to apologise for.

Our solution

We built BookMyYaan end to end — a Next.js storefront, a FastAPI backend and a typed client generated from the backend’s own OpenAPI schema, so the two can never drift. Supplier inventory sits behind provider-neutral bus and hotel interfaces with per-product kill switches, every irreversible supplier call is written through an idempotency ledger, and the fare a customer is shown is the fare frozen onto their booking.

What we built

Key features delivered

Real operator seat maps

Both decks, live availability, and boarding and drop points chosen on the same screen as the seat — not guessed from a list of stop names.

The price you were shown

The fare, our margin and any promo code are frozen onto the booking when it is held, so the number at checkout is the number from the search result.

Hotels, through to the voucher

Rooms, guests and cancellation terms up front; block, confirm and a printable voucher after — the same booking spine as buses, not a bolted-on second product.

Refund quoted before you cancel

Cancellation shows the supplier’s charge and the money back before the button, then verifies and refunds in the background rather than leaving the customer to chase it.

Duplicate-proof booking

Every supplier call that spends money goes through a unique idempotency key, so a retry, a double-click or a replayed payment result replays the answer instead of buying a second ticket.

Admin panel that reconciles

Revenue by day, week and month with what the customer paid, what the supplier debited and our margin split into commission and markup — never blurred into one number.

Under the hood

System architecture

A layered, microservices architecture designed for scale and resilience.

Client
Next.js 16 webTailwind CSS 4Admin panel
Shared packages
Typed API client (generated from OpenAPI)Booking statesMoney formatting
Backend (FastAPI)
Auth & sessionsOffers & quotesBookingsPromotionsPricing & marginReportingSupplier audit
Providers
Provider registryBus adapterHotel adapterPer-product kill switches
Data
PostgreSQLAlembic migrationsEncryption at restIdempotency ledger
Tech stack

Built with modern, proven tools

Next.js 16React 19TypeScriptTailwind CSS 4FastAPIPostgreSQLSQLAlchemy + AlembicRazorpayDocker
Delivery

Phased delivery timeline

  1. Phase 1 · Bus MVP

    Month 1–2

    Accounts and sessions, bus search, seats → passengers → confirm → e-ticket → cancel, and the first admin screens.

  2. Phase 2 · Hotels & money

    Month 3–4

    Hotel search through to voucher, booking history, advanced filters, promo codes and per-product margin.

  3. Phase 3 · Checkout

    Month 5–6

    Razorpay checkout with server-side verification, cancellation refunds end to end, and transactional email.

  4. Phase 4 · Next

    In progress

    Native mobile apps, a second inventory supplier behind the existing adapter interface, and concurrent multi-provider search.

Want to build something similar?

Let's talk about your project and how we can help you ship it.