# Drafts for rian after the structure review, 10 Sep 2026

Written by Stream S for rian to send or post himself. Nothing here has been posted anywhere;
none of it is a comment on any surface. House style: no em dashes, nothing that implies the
code is the client's. Each part says what it is for and where it goes.

Two things the drafts rest on, so you can correct them before sending:

- **JFK is the only code-first airport.** Mark deferred the list to Adam and could think only of
  JFK; the build proceeded on that. If Adam names more, each is one line in the table
  (`main/app/services/urls.py`, mirrored in `main/web/src/lib/urls.ts`) and every earlier
  address redirects.
- **Adam's two Google Docs are not readable from here.** Both answer with a sign-in page to a
  plain export request, so they are not public. I did not sign in, request access, or try
  anything else. Part 3 is the frame for your feedback, not feedback on the text.

---

## 1. The nineteen launch airports, for Adam

Reply on `structure:p-airport`, under Adam's "please share the 19" (comment 191), or by email.

> Adam, the nineteen, with the code we use for each:
>
> 1. Athens International (ATH), Athens
> 2. Barcelona El Prat (BCN), Barcelona
> 3. Bogota El Dorado (BOG), Bogota
> 4. Paris Charles de Gaulle and Orly (CDG), Paris. One shop covers both, so it is one airport on the site.
> 5. Dublin (DUB), Dublin. The same shop runs Cork; it shows under Dublin.
> 6. Dubai International (DXB), Dubai
> 7. Buenos Aires Ezeiza (EZE), Buenos Aires
> 8. Hong Kong International (HKG), Hong Kong
> 9. Seoul Incheon (ICN), Seoul
> 10. New York JFK (JFK), New York
> 11. London Heathrow (LHR), London
> 12. Madrid Barajas (MAD), Madrid
> 13. Mexico City Benito Juarez (MEX), Mexico City
> 14. Panama Tocumen (PTY), Panama City
> 15. San Salvador (SAL), San Salvador
> 16. Singapore Changi (SIN), Singapore
> 17. Montreal-Trudeau (YUL), Montreal
> 18. Toronto Pearson (YYZ), Toronto
> 19. Zurich (ZRH), Zurich
>
> Sixteen of them are collected today; Paris, Seoul and Singapore join for launch. We also
> collect a few places that are not in the nineteen and are not public: Keflavik, Sydney, the
> Heinemann online catalogue and the Danish land-border shop. They are in the data for
> comparison and stay hidden unless we decide otherwise.
>
> While you have the list: the web addresses now lead with the airport's name, as Mark asked,
> so Heathrow is /airports/heathrow-lhr-london and JFK is /airports/jfk-new-york. JFK is the
> only one I have treated as known by its code. If any other of the nineteen is known by its
> code where you are (people say "the airport code" rather than the name), tell me and I will
> switch it; it is a one-line change on our side and the old address keeps working.

The table as built, for your own reference (and on the running list as a decision item):
athens-ath · barcelona-el-prat-bcn · bogota-el-dorado-bog · paris-cdg · dublin-dub · dubai-dxb ·
buenos-aires-ezeiza-eze · hong-kong-hkg · incheon-icn-seoul · jfk-new-york · heathrow-lhr-london ·
madrid-barajas-mad · mexico-city-mex · tocumen-pty-panama-city · san-salvador-sal ·
changi-sin-singapore · montreal-trudeau-yul · toronto-pearson-yyz · zurich-zrh. Judgment calls
worth a glance: where the airport's own name is the search term (Heathrow, Changi, Incheon,
Tocumen, Barajas, El Prat, El Dorado, Ezeiza, Pearson, Trudeau) it is in the address; where the
city is (Dubai, Zurich, Athens, Mexico City, Sydney) the city alone leads.

---

## 2. Answers to the open questions, as you would put them

Each is labelled with the assumption the build went ahead under. Post them on the thread named,
or fold them into one email.

**Code-first airports** (`structure:urls`, answering Mark's comment 197 and for Adam):

> Taking JFK as the only code-first airport until Adam says otherwise. Every other airport
> leads with its name. Adam, over to you: any of the nineteen where the code is what people say?

*Assumption built on:* JFK only. *If wrong:* one line per airport in the address table; old
addresses redirect, so nothing breaks.

**Terminal price differences** (`structure:p-airport`, following your comment 180):

> Still unknown, and I would rather know before launch than after. Adam, from the trade side:
> at any of the nineteen, does the same bottle carry a different price in different terminals,
> or in a specialty shop against the main store? If yes, tell me which airports and I will
> check them; if the answer is "generally no", we show one price per airport at launch and say
> which shop it was seen at, which is what the page does today.

*Assumption built on:* one price per airport, attributed to the shop it was seen at; terminals
and named shops within an airport are not modelled yet (the data has a shop as a retailer at an
airport). *If wrong:* a later change, not a rebuild; the airport write-ups carry the colour
meanwhile.

**Size wording on the page** (`structure:p-product`, following your comment 181, either reviewer):

> Unless one of you objects, the site shows one unit throughout, millilitres for drinks and
> perfume, so a 70cl bottle and a 700ml bottle read the same in the price table and the
> comparison reads cleanly. The shop's own wording stays in the record and is what we quote when
> we cite a shop. Say if you would rather each shop's wording appeared as printed.

*Assumption built on:* one unit shown, the shop's wording kept in the record. Behind the scenes
70cl and 700ml already match. *If wrong:* display only; the record already holds both.

**Which page types ship on 18 Sep** (yours to decide; the sentence is marked for you on
`/structure` under "What is still open"):

> Two honest options. All six page types where the thresholds are met, with the perfume and
> cosmetics categories switching on as their coverage crosses the bar; or category and
> category-at-airport pages move to the buffer week after the 18th and launch with products,
> brands, airports and articles. I lean to the first if the Friday checkpoint is green.

*Assumption built on:* nothing in tonight's work depends on it; category pages are not built.

---

## 3. A frame for Adam's two documents

Adam has drafted an airport profile for Heathrow (comments 191 and 195, `structure:p-airport`
and `structure:general`) and a category example for whiskey (comment 208, `structure:general`;
it also answers `/todo` row 10). Both links answered with a sign-in page, so the text is not
readable from a session, and I have not seen it. What follows is the frame, in your voice, for
you to fill in once you have read them.

**The Heathrow profile**, against Mark's direction (comment 200) and the reworded `/todo` ask:

> Adam, thanks for the Heathrow draft. Before you write the others, the shape has moved since
> you started it. Mark's steer, which I agree with: the page is about the duty free situation at
> Heathrow and nothing else. Keep what tells a traveller where the duty free shops are, terminal
> by terminal, which specialty shops exist (a dedicated whisky or perfume store, a walk-through),
> and where to find them; a map, or a link to Heathrow's own map with the shops marked, would be
> worth more than any paragraph. Cut anything about the airport for its own sake: lounges,
> getting there, dining, terminal tips, unless it bears directly on buying duty free. Short is
> right. A few hundred words that are all about duty free beat a thousand that are half about
> the airport, and search engines see through filler now, so it costs us rather than helps.
> Prices, product counts, the best buys and the exclusives are all drawn from the data beside
> your text, so the write-up never needs to mention a price.

What to check in the document itself when you read it: whether it names the shops and their
terminals (keep, and note any specialty shop); whether it carries lounge, transport or dining
material (ask him to drop it); whether it makes claims about prices or ranges (drop, the data
does that); its length against "succinct"; whether it reads as written for a traveller or for
a search engine.

**The whiskey category example** (`/todo` row 10, "One paragraph per category"):

> The whiskey example is the right idea: this is the one piece of writing a category page
> genuinely needs, because a category page with no explanation is thin by definition. Three
> things to hold it to. Length: 200 to 300 words, one screen, so it sits above the products
> rather than pushing them down. Tone: a knowledgeable friend at the shelf, not a brochure and
> not an encyclopedia entry. Content: what the category is in a sentence, what to look for when
> buying at duty free (the sizes that only exist there, the travel exclusives, the price
> difference against the high street, the things that are the same everywhere), and what a
> traveller should not bother with. Leave out brand promotion, history for its own sake, and
> anything that reads as written for search rather than for a person. If this one works, the
> other ten follow the same shape: whisky, gin, vodka, rum, tequila, cognac, champagne, wine,
> liqueurs, perfume, cosmetics.

What to check when you read it: length; whether it promotes brands or names prices; whether the
"what to look for" part is there, since that is the useful half; whether it reads as filler.

---

## 4. A reply for `todo:9`

Adam's question of 5 Sep on the "Airport write-ups" row (comment 148): "How long should each
airport profile be, 500 or 1000 or 2000 words, personalize it, with terminal tips on how to get
there by mass transportation as well as cab and car, also how many images and size?" It went
unanswered; Mark's direction answers it now. Post as a reply on the `todo:9` thread.

> Adam, sorry this waited. Mark's review answers it and I agree with him: short, and only about
> duty free. Nearer 300 to 500 words than 1,000, and never 2,000. Skip the transport, cab and
> car material altogether; nobody comes to this site for it and it dilutes the page. What each
> profile should carry: where the duty free shops are, terminal by terminal; any specialty
> shops and where they sit; anything a traveller needs to know to actually buy there (a
> walk-through you cannot avoid, a shop that only sells one thing). A map helps: a link to the
> airport's own map with the shops marked is enough, we can embed it later.
>
> Images: none required. If you have a photo of a shop front or a terminal map you are free to
> use, one or two per airport, landscape, at least 1600 pixels wide, named by airport code. The
> prices, product counts and best buys are drawn live from the data beside your text, so the
> profile never needs to mention a price. I have reworded the ask on this row to match.

---

## Where the loose ends live

- `do-send-adam-the-list-of-the-nineteen-launch-airports` (yours): part 1 is the message.
- `do-give-adam-feedback-on-his-heathrow-airport-profile-and-h` (yours): part 3 is the frame;
  the documents need your eyes, since they are not public.
- `decide-confirm-the-nineteen-airports-web-addresses-with-adam-jf` (yours): the table in part 1.
- Mark's `/todo` row 1, "Comments on the site structure proposal", is still open. Mark has
  commented in full; it is his or yours to close.
