Where to watch is a different job from what to watch
What to Watch tells you something is worth your time. Watch tells you where it is. They are complementary questions and they want different machinery: one is editorial judgement, the other is a database that has to be right every night.
The gap this fills
USA TODAY’s What to Watch section currently answers the where question by hand, one article at a time — “How to watch new episodes of House of the Dragon Season 3”, “What time is Episode 7 of Dutton Ranch streaming?”, “Here’s how to watch before it leaves Netflix.” Each one is a person looking up availability manually.
There is no data layer under it. Watch is that layer: every title, every service, refreshed weekly, so the desk writes the judgement and the database handles the lookup.
The ask, in one line of markup
This is the reverse link. It goes inside a review or a recap, where a reader has just decided they want the thing:
‘Interstellar’ still hits like nothing else a decade on
Christopher Nolan’s space epic turns ten this year, and the case for it has only got stronger…
One line, auto-generated from the title in the article’s metadata. It keeps the reader inside the building instead of sending them to Google, and it turns every archived review into a live utility.
Where it sits in the IA
As a section of Entertainment, next to What to Watch — not a new top-line section competing with it. Their What to Watch already carries a third-level nav by service (Netflix, Hulu, Prime Video, HBO Max, Disney+, Peacock), which is exactly the shape of the service pages here. We fill an IA they already built.
What the port actually involves
Their /entertainment/ section is already a Next.js application
mounted at a path prefix — assetPrefix: "/entertainment",
Pages Router, server-side rendered, with TanStack Query hydration from their Presto CMS.
play.usatoday.com is another zone. Running a section as its own app is a
pattern they already operate, which is the whole reason this is tractable.
| Their stack | What porting means |
|---|---|
| Next.js, Pages Router | Our page generator becomes page components. The templates here are already data-in, HTML-out with no framework coupling. |
assetPrefix zone | A basePath of
/entertainment/where-to-watch. One config line, not a rearchitecture. |
SSR via getServerSideProps | Title pages are better as
getStaticProps with ISR — availability changes weekly, not per
request. |
| TanStack Query + Presto | Availability stays on our side behind one JSON contract. Their CMS supplies the editorial; it never needs to model a streaming offer. |
| Shared header package | The chrome here is one module. Swap it for theirs and every page inherits the real nav. |
What we are not asking for
- No CMS integration. Nothing here needs to live in Presto.
- No editorial workflow change. The desk keeps writing what it writes.
- No data migration. The catalogue is ours and stays ours.
The dependency runs one way, and it is a link.