Work · Case study

A travel site that doesn't lie about prices.

I built a curated travel website for UK travellers, blending rich editorial content with honest, real-time hotel pricing across hand-picked destinations.

Live, in production ● 2025 to present ● Vite + React + LiteAPI ● Notion CMS ● One operator
What it does

Editorial-led discovery, with real LiteAPI rates under the headline.

Vibe2 pairs hand-picked editorial with live hotel rates. The brochure content is the SEO and brand asset; the booking flow is the conversion. Both feel like the same product, written by the same hand, with the same honesty about what a place costs.

Every rate is a real LiteAPI rate. If a hotel is £129 a night on the city page, the rate you see when you click is the same £129. No "from £69" bait-and-switch. No made-up starting prices. The editorial and the booking flow agree, because they pull from the same source.

Vibe2 home page with hero, mood picker, editorial guides grid
The product

Pick a mood, get a hand-curated top 10, book a real hotel at the real price.

Eight moods: party, beach, wellness, food, adventure, romantic, culture, cheap and easy. Each one is a hand-curated top 10 of cities, with editorial context (six famous things to do, where to stay, when to go) and live hotel rates from LiteAPI.

Every rate is a real LiteAPI rate. If a hotel is £129 a night on the city page, the rate you see when you click is the same £129.

Vibe2 home page top with hero, vibe chips, trip describer
Vibe2 wheel-of-destinations landing page for Lisbon

The wheel-of-destinations landing page for Lisbon. 1,353 words, 13 images, structured data, live hotel rates.

The wheel

When the user doesn't know where to go.

Eight destination landing pages (Lisbon, Bali, Marrakech, Tokyo, Cape Town, Reykjavik, Mexico City, Santorini) that the user lands on without knowing what they want. Each one reads like a travel essay, with the booking flow waiting at the end. Real photos, real neighbourhoods, real hotel rates.

The 10 best things to do in Lisbon, the 6 famous things to do in London, the 10 UK cities for clubbing. The SEO and brand asset is the editorial, not the meta description.

Real prices, verified

£68 to £307. The live LiteAPI rates, not mock data.

Every hotel rate on the site is a real LiteAPI rate. AGENTS.md enforces a strict rule that every displayed price is a verified LiteAPI rate, never a fabricated starting price. The deals page returned £29 to £87 per night on a real cross-hotel scan. Hotel Football in Manchester came back at £61 to £121 with a 60-image gallery and live availability.

Every rate shown is the rate paid, fulfilling the project's core brief for transparency.

Vibe2 deals page with 39 hotel cards and real cross-hotel rates

The deals page: 2,231 words, 39 hotel cards, real cross-hotel rates.

Vibe2 hotel detail page with gallery, live rates, add-a-flight section
The stack

How it's built.

Frontend Vite 5, React 18, React Router 6, CSS Modules per component. No Tailwind. No UI framework. Every component owns its own styles.
Content Notion CMS for the editorial (vibes, brochure categories, destinations, UK clubbing). The studio is Notion's UI. The site is the build output.
Hotels LiteAPI for rates, availability, and the booking flow. Country hint on every non-UK destination so Birmingham does not appear when the user types Bali.
Maps Static screenshots from Google Maps, captioned, with a real key. Just the place, named.
SEO 202 URLs in the generated sitemap. Per-city landing pages with 200+ indexed URLs in the live build. The wheel pages target long-tail "10 best things to do in X" queries.
Operator One person. Editorial, bookings, dev, support. The site is built to be edited by one person, not a team.

Vibe2 pairs real editorial with real rates. Every city page reads like a travel essay and ends with a working booking flow at the price quoted.

The interesting part

The home page becomes a results page.

The same route, /, renders two different layouts depending on the query string. /?destination=lisbon drops the marketing chrome below the cards and serves a clean results page for the Lisbon wheel. /?vibe=party does the same with the party filter active. The home page is also the search page. One route, two surfaces, no duplicate code.

Vibe2 home rendered as a clean results page for Lisbon

The home page rendered as a clean results page when destination=Lisbon is in the query string. Same route, different layout.

Efficiency & Accuracy

Smart orchestration for a lean operation.

Orchestration

Hermes powered workflow

Managed end-to-end through Hermes. Content updates, price verification, sitemap generation, and deploy all run on the same agent system, so a single operator can run a data-rich site without manual plumbing.

AI Strategy

Right-sized model for the task

Open-source and open-weight models handle the high-volume work: hotel offer aggregation, sitemap generation, routine content checks. Frontier models are reserved for editorial quality reviews and the security and accuracy audits before any change ships. The architecture does the model selection, so the operator doesn't have to.

Deployment

Rigorous pre-deployment audits

Before any updates go live, frontier models conduct thorough audits for security and code integrity. This diligent approach minimizes risks and maintains the site's high standards of reliability and user trust, even with continuous updates.

Vibe2 mobile home page showing mood picker, vibe chips, and editorial trip cards stacked for thumb scrolling.

Next: Vereby. Multi-tenant AI support that knows each brand.

One brain, three live use cases (ecommerce, salons, plumbers), per-brand knowledge scraped from each customer's own website.

Read next