
Search on the home page
Search and routing
Destination, dates and budget route towards a trip in the catalogue or towards a tailor-made request. People who do not find what they want are not left at a dead end.
A tour operator selling group departures, individual packages and itineraries built on request. Three different ways of selling that still have to end up in the same place.
Next.js, Supabase, Stripe, Resend

Home · solo or group trips, same care
Time Travel Bag is a platform for an Italian tour operator: a public site with search and catalogue, trip pages with day-by-day itineraries, Stripe checkout with deposit or full payment, gift cards and vouchers with drawable balances, waiting lists on sold-out departures, quote requests for tailor-made travel, and a back office with dashboard, statistics and a trip wizard. Stack: Next.js, TypeScript, Supabase, Stripe, Resend.
A small agency sells in three different ways and each has its own rules. A brochure site is not enough: what is needed is the piece behind it, where the work actually happens.
From search to confirmation, and the back office behind it.

Search on the home page
Destination, dates and budget route towards a trip in the catalogue or towards a tailor-made request. People who do not find what they want are not left at a dead end.

The catalogue
The catalogue filters by trip type, and themed collections gather food, nature, art, history and cultures for people who start from an interest rather than a place.

A trip page
Daily itinerary, services included and excluded, gallery, guides and FAQs. All in the database, so the agency updates it without asking.

The checkout
You pick the departure and the participants, then pay a deposit or the whole amount. On confirmation seats are drawn down, gift cards and vouchers are redeemed, and the emails go out.

Booking detail
A payment summary with the deposit paid and the balance still due, and a button to settle it online whenever you want. You get there from the customer area or from the signed link the agency emails out. Below, passenger details for tickets and insurance.

Buying a gift card
Any amount from €25 up, with four suggested tiers. The buyer writes a name and a message, pays with Stripe, and the code reaches both of them by email. It lasts twelve months and is drawn down until spent.

Bookings in the back office
Every booking with customer, trip, session, amount and payment state. Filters by date, destination and trip type, plus manual entry for people who book by phone or in the shop.

Vouchers in the back office
Codes are created from the panel and tracked by state: to use, partially used, spent, expired. Each one carries its remaining balance and expiry date.
This is the most substantial part of the work, protected at three levels: middleware, role checks in every server action, and Row Level Security on Postgres.
Trips
A multi-step wizard: information, photos, departures, itinerary, services, FAQs from a shared library, and SEO. Drafts survive closing the browser.
Destinations and collections
The taxonomies the catalogue is browsed by.
Collaborators
Records for guides and tour leaders, linked to the trips.
Travel stories
The editorial side, with its own writing and publishing flow.
Bookings
Advanced filters, manual entry, an editable customer page and travel documents for each participant.
Waiting lists
Everyone signed up on a full departure, ready to be told when a seat frees up.
Messages
Enquiries from the site land here and are answered by email from the panel.
Vouchers and gift cards
Creating and deactivating vouchers, checking gift card balances.
Dashboard
Thirty-day indicators and alerts: bank transfers pending, seats running low, waiting lists to notify.
Statistics
A selectable period compared with the previous one on revenue, bookings, payment states and best-selling trips.
One Next.js app, one Postgres database, payments and email native. Content sits on translation tables, so multilingual is already provisioned for.
Granular cookie consent with Consent Mode: analytics scripts only start after consent.
Groups, packages and tailor-made trips have different rules but the same agency behind them. The work is making them end up in the same place.
timetravelbag.com