
01
Booking without an account
A guest picks a tour and books with one form. Convex actions send the confirmation through Resend and notify staff of each new booking. Customers who do sign up get a dashboard of their trips.
Client buildLive
A tour booking and operations platform for adventure travel in Pakistan. Guests book without an account, staff run everything from one realtime admin panel, and an AI planner suggests trips from the live catalog.

Junket Tours sells guided trips across Pakistan. The agency needed one place to publish its tours, take bookings and answer trip questions, run by a small team.
The build had two hard requirements. A visitor must be able to book without signing up, and staff must see a booking the moment it lands.

01
A guest picks a tour and books with one form. Convex actions send the confirmation through Resend and notify staff of each new booking. Customers who do sign up get a dashboard of their trips.

02
Staff manage tours, destinations, bookings, users and blog posts in one place. The panel reads from Convex subscriptions, so a new booking appears without a refresh.

03
The planner runs as a Convex action that calls Groq with the current tour catalog, so it suggests trips the agency actually sells. A request the catalog can't cover is flagged as a custom plan for staff to price.
One Next.js app and one Convex deployment. There is no separate API server to host.
The admin panel has to update live. Convex gives the database, server functions and subscriptions in one deployment, so there is no polling and no second service to run.
Trade-off: no SQL for ad hoc reporting, and the backend is tied to one vendor.
Sessions live in an HTTP-only cookie. Only a hash of the token is stored, in a Convex sessions table, so a leaked table cannot be replayed.
Why not a hosted provider: guests, customers and staff roles all live next to the bookings in one database, with no extra service or per-user bill.
The model gets the live catalog with every request and must answer with catalog slugs. A made-up itinerary would be a sales problem, so the catalog is the only source.
Trade-off: trips outside the catalog become a custom-plan request that a person prices.