FAQs
Question / answer pairs, reorderable. Used on the landing and on each itinerary's detail page.
A bespoke mini-CMS for a real agency.
Countries, itineraries, gallery with lightbox, FAQs and home content — every block editable from a custom backoffice, without ever touching the SEO keyword set.

Not WordPress. Not Strapi. A bespoke admin built around the agency's real workflow — Countries, Itineraries, Gallery, FAQs and Home content, each with its own editor surface.

Every country is created from the backoffice with its own hero image, copy blocks and metadata. Itineraries snap onto a country once it exists — country lives at the top of the content tree.
Itineraries are created and attached to a country. Each one gets two editable surfaces: the card (the preview tile in the list) and the content (the detail page).
The public itineraries page filters by country — pick a flag, see the trips. The card preview is faithful to what the visitor will see.

The detail page is composed from editable blocks: hero, day-by-day plan, highlights, gallery and pricing notes. Reorder, rewrite or replace any of them from the backoffice without touching the codebase.

The client uploads full-res photos straight from their phone. The server resizes, converts to webp and stores variants. Visitors browse the gallery through a lightbox — fast and smooth on mobile.

Three more editor surfaces close the loop. The home page reshapes itself from the CMS without ever touching the indexed keyword set.
Question / answer pairs, reorderable. Used on the landing and on each itinerary's detail page.
Hero block, intro copy, featured countries, gallery teaser. The landing is fully editable without code deploys.
Keywords live on a separate config decoupled from the editable content — so daily content tweaks never pollute the indexed term set.
Picked tools that the client could host cheaply, that handle media well, and that I can extend fast when the agency asks for the next feature.
The site is in production and serving real customers. It's not linked publicly here to protect the client's data — the case study lives entirely on these screens.
Designed, built and handed over end-to-end. Client owns the code.
Custom backoffice, not a CMS framework. Less surface area, tighter UX for the team.
Keywords decoupled from content. Editing copy never affects the indexed term set.