LIVE v1.0 · 66 tests passing · Laravel 13 + Filament 5

Run your tours without overselling a seat.

Tours, dated departures, bookings, payments and passenger lists for small tour operators and travel agencies. Every booking is checked under a lock, so the last seat can only be sold once.

DeparturesDates, seats, guide
BookingsDeposit, balance, invoice
TravellersPassports and manifest
MarginCosts against revenue
travel-manager.infymerce.com
Travel Manager dashboard
SAH8 · 7 NOV11 of 16 seatsGuaranteed to run
MARGINUSD 3,56122.8% on this departure
Travel Manager on a phone
WHY IT EXISTS

Small tour operators run on spreadsheets and email.

Two agents sell the last seats, deposits are chased by hand and nobody knows if a trip makes money until it is over. Travel Manager replaces all three with rules that never get tired.

Atlas Trek · 7 Nov9 / 12 seats
Group of 3 asks3 seats left
Group of 4 asksRefused
Last 3 seatsSold once
SEATS

One seat, one traveller

Seats are counted under a database lock. A held booking keeps its seats for a set time, then gives them back.

Deposit 25%USD 2,068
Balance due 8 OctOverdue
Paid so farUSD 2,068
Still owedUSD 6,205
MONEY

Deposits and balances that chase themselves

A deposit confirms the booking, the balance has a due date and overdue ones show on the dashboard.

Revenue 15,600Costs 12,039Margin 22.8%Needs 2 more to run
MARGIN

Know the margin before you run the trip

Add hotels, transport and guide costs to a departure and see revenue, cost and margin next to the seats sold.

FROM ENQUIRY TO INVOICE

Every booking, one clear record.

Five steps from the first enquiry to a numbered invoice, all in one screen.

1
An enquiry arrives

Visitors pick a departure on the public site and send an enquiry. Nothing is held until your team answers.

2
Staff hold the seats

Convert it to a booking. The seats are held for 48 hours (you choose) while the deposit is on its way.

3
Take the deposit and confirm

Cash, card machine or bank transfer. A booking needs its deposit to confirm, and a manager can waive it.

4
Collect the passports

Names, passport numbers, diet and emergency contacts for every traveller, with a ready count on the booking.

5
Travel, then invoice

Mark the trip travelled, settle the balance and issue a numbered invoice. A closed invoice never changes.

An enquiry arrivesStaff hold the seatsTake the deposit and confirmCollect the passportsTravel, then invoice
INVOICE ISSUEDINV-2026-0042Read-only from now on
FEATURES

Everything the booking desk does, in one place.

Built around the real work of a tour operator: selling seats, collecting money, preparing the trip and knowing what it earned.

TOURS

Tours and itineraries

Destinations, photos, highlights, included and excluded lists and a day-by-day plan, with prices for adults, children and infants.

DEPARTURES

Dated departures

Seats, a minimum to run, a price for the date, a guide and a vehicle. A month calendar shows how full every trip is.

BOOKINGS

Groups, holds and coupons

Adults, children, infants and single rooms. Hold seats, change the group, move to another date or cancel with a fee.

PAYMENTS

Deposit, balance and invoice

Deposit and balance due dates, payments and refunds, extras and fees, tax and a numbered invoice that locks.

CANCELLATIONS

Fees by days before departure

A schedule you set: for example 10% from 60 days, 50% from 30, then 100%. The desk suggests the fee for today.

TRAVELLERS

Passports and a manifest

Passport, diet, medical notes and emergency contact per traveller, and a printable passenger and rooming list.

OPERATIONS

Guides, suppliers and costs

Assign a guide and a vehicle, keep suppliers, add cost lines and see the margin on each departure.

DASHBOARD

Seats, money and what is overdue

Departures and seats for 30 days, money received, balances overdue, new enquiries and the next departures.

BUILT-IN RULES

The rules a tour operator needs, handled.

Every rule is enforced in code and covered by automated tests, so it works the same on a quiet Tuesday and the week before a sold-out departure.

66TESTS PASSING
No overselling
Holds give seats back
Deposit to confirm
Capacity never below sold
Closed invoices read-only
One infant per adult
Coupons with limits
Cancelled trips refund, not vanish
WORKSPACE

Every screen, ready today.

Dashboard, bookings, departures, calendar and the manifest, with a dashboard that shows what needs attention right now.

travel-manager.infymerce.com/admin
Dashboard
Seats and margin Overdue balances New enquiries
travel-manager.infymerce.com/admin/bookings
Booking desk
Confirm with deposit Cancel with a fee Trip page link
travel-manager.infymerce.com/admin/departure-calendar
Departure calendar
Runs or needs travellers Full and cancelled Click to open
travel-manager.infymerce.com/admin/departures
Manifest
Passport details Diet and medical Missing documents
TRAVELLER PAGES

What travellers see on their phone.

No app and no login. Visitors browse tours and send an enquiry, and travellers keep their trip and invoice on a private link.

Tour site
Tour siteBrowse tours and seats left
Tour page
Tour pageItinerary, dates, enquiry form
Trip page
Trip pageItinerary, balance, invoice
FOR EVERY ROLE

One system, four views.

Everyone sees exactly what they need, and nothing they should not.

LIVEOwner / Admin

Sets prices, settings and logins, and sees every number.

LIVESales

Customers, bookings, payments and enquiries.

LIVEOperations

Departures, guides, suppliers and costs. No customer or money screens.

LIVETraveller

Browses tours and opens a private trip link.

SECURITY & CONTROL

Safe by default, without extra setup.

Four roles, signed traveller links, a honeypot and rate limits on every public form. No public registration and no default passwords.

ROLES

Admin, manager, sales, operations

Each role sees only its screens. Refunds, voids, waived deposits and unpaid trips need a manager, and only an admin deletes.

LINKS

Signed traveller links

The trip link is signed and expires. Tampered or expired links are refused.

PRIVACY

Enquiries hold nothing

A website enquiry creates no booking, so bots and spam cannot block seats. Honeypot and rate limits protect the form.

DEMO

Signed one-hour demo logins

Demo mode is off by default. When on, one-click logins accept only signed links.

DATA

Row locks on every sale

The departure is locked while seats are taken or moved, so two agents cannot sell the same seat.

RoleBookingsPaymentsRefundsTours and pricesDeparturesSettingsLogins
Admin
Manager––
Sales–––––
Operations––––––
UNDER THE HOOD

A clean Laravel stack you can host anywhere.

Laravel 13 and Filament 5 with Blade and Tailwind 4 for the public pages. Docker image included. No obfuscated code.

BrowserStaff panel, tour site, trip page
PoliciesRole checks on every record
ServicesBookingService, BillingService, DepartureService
Eloquent15 models, row locks in transactions
MySQL 815 business tables, indexed
FRAMEWORKLaravel 13

PHP 8.3+, policies, validation

ADMINFilament 5

Livewire resources and widgets

PUBLICBlade + Tailwind 4

Tour site and trip pages

DATABASEMySQL 8

MariaDB and SQLite also work

DEPLOYDocker

HTTPS behind Cloudflare, VPS guide

QUALITY66 tests

Seats, money, roles, public site

15Business tables
66Automated tests
13Admin screens
4Staff roles
AI-READY CODEBASE

Change it with your AI coding tool.

CLAUDE.md and AGENTS.md describe the architecture, conventions and how to run the tests, so an AI assistant can change a cancellation rule, add an extra type or restyle a screen without breaking the rest.

Claude CodeOpenAI CodexCursorGitHub Copilot
CLAUDE.md
# Project overview
Travel Manager: Laravel 13 + Filament 5.
Seats  app/Services/BookingService.php
Money  app/Services/BillingService.php
Roles admin, manager, sales, operations

$ php artisan test
66 passed
WHAT YOU GET

Everything in the box, nothing hidden.

One end product per licence, full source, and honest limits so there are no surprises.

Included

  • Full source code, no obfuscation
  • README, HowToSetup (Docker and VPS), CHANGELOG
  • Dockerfile and docker-compose.yml with MySQL
  • database/schema.sql and seed.sql, plus migrations
  • 66 automated tests
  • CLAUDE.md and AGENTS.md for AI coding tools
  • English admin and public pages
  • One end product per licence

Honest limits

  • No online payments: staff record cash, card machine or bank transfer
  • No flights or supplier booking: suppliers and costs are records for your own margin
  • One currency per installation
  • WhatsApp uses click-to-chat links: one tap, not automatic sending
  • English only
Laravel 13Filament 5LivewireTailwind CSS 4ViteMySQL 8MariaDBSQLiteDockerPHPUnit
QUESTIONS

Answers before you ask.

The things buyers ask most.

Can it sell the same seat twice?

No. Booking, moving and changing the group run in a transaction that locks the departure and counts the seats again. Capacity cannot be lowered below the seats sold.

Does it take online payments?

No. Visitors send an enquiry, and staff record cash, card machine or bank payments on the booking, so there is no gateway to configure.

How do holds work?

A new booking keeps its seats for a number of hours you set while the deposit is collected. When the time runs out the seats are free again, even before the scheduler cleans up the booking.

How do I deploy it?

Docker (docker compose up -d, MySQL included, HTTPS behind Cloudflare) or any VPS with PHP 8.3 and MySQL. Both are documented step by step in HowToSetup.md.

What licence do I get?

The Vibe96 Standard License: one end product, for example one agency. Each extra client install needs its own licence, and the source cannot be resold.

TRY IT NOW

Run your next departure with Travel Manager.

See the departure calendar, a booking desk and a printable manifest working with real data. No sign-up, nothing to install.

One click signs you in. Demo data resets every few hours.

Try it in four clicks

Open the Live DemoOne click signs you in as Admin, Sales or Operations
Open the calendarSee every departure and how full it is
Open a bookingTake a payment, confirm, print the manifest
Open the tour siteBrowse tours like a traveller