The public tours site is the shop window. This is the room behind it, where every tour, price and page a visitor sees is entered and published.
The problem
A tours catalogue changes constantly. Itineraries shift with the season, prices move, and a full tour needs to stop selling today rather than at the next deploy. If publishing needs a developer, the site is always out of date.
What I built
An authenticated back office in React and Tailwind CSS, on Firebase alongside the rest of the platform.
- Tour and itinerary management, so the catalogue is edited in one place.
- Content editing for the surrounding pages, keeping copy out of the codebase.
- Booking visibility, so enquiries are actionable rather than just recorded.
- Role-gated access, because a back office everyone can reach is one nobody can trust.
Built for someone who did not choose it
Nobody picks a back office. They are handed one while doing another job. So the work went into being unambiguous: explicit labels over icons, confirmation before anything a customer would notice disappears, and states that say what happened instead of leaving the user to refresh and guess.
