How the data works
A plain-English tour of the content model behind the new site — how suppliers, tours, cruises and destinations fit together. No jargon, a few real examples. Read it before the hands-on blocks on the working-session agenda so we spend the room building, not explaining.
- Two systems, one split: the CMS holds what customers read and see (words, photos, what's featured); PGGO holds the operations (pricing, quotes, inventory).
- Everything is built from a small set of pieces — trips, venues, ships, destinations, pages — that point at each other instead of copying each other.
- So you write a thing once (a hotel, a ship, a photo set) and every trip and page that uses it updates. That one idea is most of the model.
Two sources of truth
- The CMS (Sanity) is the marketing source of truth — the words, the photos, and what gets featured where. It's what a customer reads.
- PGGO is the operational source of truth — pricing, quotes, booking, inventory. It's the numbers that actually sell a trip.
- Rule of thumb: if a customer reads it, it lives in the CMS; if it's a number that books a trip, it lives in PGGO.
- One exception — PYOT. Its marketing content moves into the CMS, but the quote still comes from PGGO. That split is one of the things to settle in the session.
The building blocks
Everything on the site is made of these. Most of the work in the CMS is creating one of them and pointing it at the others.
| Building block | What it is | Real example |
|---|---|---|
| Tour | One escorted / small group tour, start to finish. | Passions of Argentina |
| Cruise | One golf-cruise voyage. | 2028 Baltic Sea Golf Cruise |
| Tour type | The boilerplate every tour of a type shares — what's included, ground transport, FAQs. Written once. | Small Group Tour |
| Cruise line | The shared fare inclusions and FAQs for every cruise on a line. | Silversea |
| Ship | A reusable vessel — its stats, photos and cabins. Many cruises sail it. | Silver Nova |
| Cabin type | A cabin or suite category on a ship. | Classic Veranda Suite |
| Partner (venue) | A place — a golf course, a hotel, or a lodge. One venue is one record, with its own photos and write-up. | Fancourt · Gleneagles |
| Course | One golf course at a venue that has several. Single-course venues don't need this — their course details sit on the venue itself. | The King's Course, at Gleneagles |
| Country (destination) | A destination. Trips and venues are tagged to it. | Scotland |
| Region | An optional grouping, parallel to country. | Scotland Central |
| Page | A flexible page built from stackable sections. Destination pages are these. | /destinations/scotland |
| Carousel | A reusable set of photos, built once and pointed at from anywhere. | Fancourt gallery |
| Tour extension | An optional add-on before or after a tour. Offered on several tours. | Iguazú Falls |
Two systems own the data: the CMS holds the words and photos above; PGGO holds pricing and inventory.
The shape
The whole model on one picture. Trips (tours and cruises) point at shared templates and at venue records; a venue is written once and reused everywhere; a destination page pulls the trips and venues tagged to its country. The worked examples below walk three paths through this.
Passions of Argentina is a tour. It uses the Small Group Tour type for its shared inclusions and FAQs. Its Day 3 in Buenos Aires plays a course and stays at a hotel — both are venue records (like Fancourt), written once and reused. Its gallery is a carousel that pulls those same venue photos, and Iguazú Falls rides along as an optional extension. Because the tour is tagged to its country (Argentina), it surfaces automatically on that destination page’s featured-trips section, with no hand-picking.
A tour, end to end
Take Passions of Argentina. It's a single tour record. It writes its own story — dates, nights, rounds, highlights, and the day-by-day itinerary — and points at existing records for everything else.
The tour owns: its title, dates, nights and rounds, its highlights, and its day-by-day itinerary.
- Its tour type (“Small Group Tour”) — supplies what's included, the ground-transport copy and the shared FAQs, written once and reused by every small group tour.
- Each itinerary day points at the golf course played and the hotel for the night — those are venue records, not text typed onto the tour.
- The Golf Courses and Lodging sections are those same venues, shown as photo galleries.
- Optional extensions — like Iguazú Falls — are their own add-on records, offered on more than one tour.
So building a tour is mostly choosing which existing venues and type it points at, then writing the day-by-day story around them.
A cruise
A cruise is the same idea, shaped for sailing. Take the 2028 Baltic Sea Golf Cruise.
The cruise owns: its title, dates, embark and disembark ports, highlights, and its port-by-port itinerary.
- A cruise line (“Silversea”) — the shared fare inclusions and FAQs for every voyage on that line.
- A ship (“Silver Nova”) — reusable, carrying its own stats, photos and cabin catalogue. One ship, many voyages.
- The cabins it sells — a subset of the ship's cabin types, each with an availability note and a price placeholder.
- Golf days point at courses — the same venue records a tour uses.
A destination page
A destination page — say /destinations/scotland — is a flexible page with its country set to Scotland.
- It's built from stackable sections — a hero, editorial copy, “featured trips”, “featured courses & hotels”, an enquiry form — dragged into the order you want.
- Two of those sections can run on autopilot. Set to auto, “featured trips” and “featured courses & hotels” pull every tour, cruise and venue tagged to that destination — no hand-picking. Set to curated, an editor picks the exact list instead.
- Because the page already knows its country, the auto sections inherit it — you set the destination once, not on every section.
How it all connects
| This… | …points at… | …so that |
|---|---|---|
| A tour | its tour type, its courses & hotels, its optional extensions | shared copy is written once; venues are a single source of truth reused across trips |
| A cruise | its cruise line, its ship, the cabins it sells, its courses | the ship and its cabins are reused by every voyage that sails it |
| An itinerary day | one golf course and one hotel (both venues) | the day-by-day itinerary and its map draw from the same venue records |
| A destination page | a country | its auto sections surface every trip and venue tagged to that destination |
| A carousel | a venue's photos | galleries reuse a venue's images with no duplication |
Change once, updates everywhere
Because trips and pages point at shared records instead of copying them, one edit ripples out. This is the single most useful thing to hold in your head.
- Fix a hotel's description or add a photo on its venue record — every tour, cruise and destination page that features it updates.
- Change the “what's included” list on a tour type — every tour of that type shows the new list.
- Fix a ship's stats or reorder its cabins — every voyage on that ship reflects it.
- The flip side is the useful part: there's one right place to make a change. If a course reads wrong on three tours, you fix the one venue, not the three tours.
Why it's built this way
- One source of truth. A venue, a ship, a photo set is written once and pointed at — never copied — so it can't drift out of sync between pages.
- One slot that fits both shapes. Most venues are a single course, so the course detail lives on the venue. A few (like Gleneagles) have several courses, so each course is its own record. A golf slot accepts either, so itineraries don't have to care which shape a venue is.
- Descriptions stay deliberately simple. Venue write-ups allow bold, italic, links and bullets — but no headings or tables — so the text can flow back to PGGO cleanly later.
