# dutyfreeprofessor — brief

> Project genesis: what this is, who it is for, why it exists. Tier 1, always loaded; kept
> under forty lines. The NOW block is the only part that changes, and `/checkpoint` rewrites it.

## NOW
<!-- rewritten by /checkpoint -->
- **Phase:** the away run of 19 to 20 Sep is done (AW1, AW3, AW2, AW4, AW5, AW6, AW7; deploys D1 to D6, staging at `dec7aa8`, migrations at head `aw5d1e2f3a4b`), and the soft launch is Monday 2026-09-21. The run's timeline is `.logs/planning/streams/AWAY-2026-09-19.md` section 8; what it handed back is the top entry of `.logs/handoff.md`.
- **Accepted scope:** the launch quote Adam approved on 2026-09-03; the lines are on `/quote`, verdicted line by line in the launch plan's last section.
- **Deadline:** soft launch Monday 2026-09-21 (moved from 18 Sep, Adam agreed), before Cannes (2026-09-27).
- **Live version:** 0.52.0 (`main/app/version.py`; the away orchestrator deployed six times and did not bump it, so staging and this tree still read 0.52.0).
- **Public airports:** twenty-two (ATH BCN BOG CDG DUB DXB EZE HEL HKG ICN JFK LAS LGW LHR MAD MEX PTY SAL SIN YUL YYZ ZRH; `python -m app.cli shops`): rian showed LAS, LGW and HEL on 20 Sep; KEF, SYD and the two catalogues stay hidden.
- **Next milestone:** `.logs/planning/launch-plan-2026-09-19.md`, run top to bottom Sunday night or Monday. Rian first: the blocking decide on the legal pages, then the rest of the running list (`python3 main/scripts/items.py list`).

## What
**Duty Free Professor (DFP)**: a duty-free price comparison site for travellers. Collectors
read airport retailers' public listing pages and store timestamped price observations;
the site compares them across the shopper's chosen airports and badges products with
competition medals from Adam's award network. Legal posture and collector rules:
`main/docs/COLLECTORS.md`. Decisions: build plan §9. Open questions and issues: the running list (`main/scripts/items.py list`; `/plan` → Issues and to-dos).

## Who
- Owner and builder: rian. Client: Adam Levy, who also owns the competition multisite
  (`/srv/apps/apnetwork/`) and the Professor publishing network on WordPress.
- Reviewer for site structure and SEO: Mark (comments on `/structure`).

## Why
The AI-first custom-app work rian wants to be doing, with a differentiator nobody else
has: a decade of Adam's competition data (winners, medals) to join onto live prices. The
long game is folding the publishing and competition networks into this app ecosystem.

## Domain and stack
- Dev: <https://dutyfreeprofessor.demoing.info> (shared-password gate). Production host: build plan §10.
- React SPA + FastAPI + Postgres (`/srv/projects/standards/react.md`). One Python process
  serves the API and the built SPA; collectors are plain Python behind a swappable fetch
  port. Dev loop and deploy: `main/docs/RUNBOOK.md`.

## Not doing
- WordPress theme redesigns or new WordPress features for Adam's networks (support only).
- Anything that logs in to a retailer, accepts its terms, or rehosts its imagery or copy.
