Good Life Sports Bar & Grill Sports Calendar
Checking
Game Day. Every Day.

Every Game, All Season

Everything televised or streamed across pro, college and Nebraska high school, from now through next September, with the DIRECTV channel resolved for the store you pick. All times Central ().

Sport

About this preview

A design and interaction preview of the Sports Calendar module described in docs/HANDOFF.md §16. It is a spec to port, not the product — the real one lives inside the Hub on Marketing & Events, routed through the page registry using the calendar template.

Why it says preview, permanently

There is no Google Calendar connection yet: GOOGLE_CALENDAR_ID and GOOGLE_CALENDAR_API_KEY are unset, and §16 requires every Google call to run server-side — which a standalone page cannot do at all.

So the banner is sticky, undismissable, and the channel block carries its own warning. A GM who once turns on the wrong channel because the page was confidently wrong stops trusting it.

Time — America/Chicago, live

Every time is formatted through one utility using the IANA zone America/Chicago, never a frozen UTC−6. Same 7:00 PM wall time, both sides of the daylight-saving switch:

ScheduledStored (UTC)Rendered

Channels, resolved per store

Every card carries how to watch it: a DIRECTV channel number, or Stream and the platform when there is no channel. No opening an event to find the one thing you actually came for.

All six stores sit in the Omaha DMA — Douglas and Sarpy both — so the locals resolve identically today: CBS 3, NBC 6, ABC 7, FOX 42, Nebraska Public Media 26. The lookup is still keyed to the store record, which is what makes a seventh store in another market safe to add.

Shaped as store_channel_map(store_id, provider, national_channel, local_channel) and resolved at render, per §16.

Nothing is hardcoded

  • sport, league, level and school are fields. The sport chips, the level filter and the school list are all derived from the rows present.
  • Featured teams come from a priority_teams row, not code. Omaha Supernovas and Union Omaha are flagged, home and away, and surface through any sport or level filter.
  • Nebraska teams only reads a local field — Huskers, Creighton, UNO, the two pro clubs and every NSAA school. Not a list of names in the code.
  • Basketball and baseball show at pro level this week and none at high school, because that is what is in season — add rows in November and the chips appear on their own.

Search everywhere, watch one room

Search always reaches all six locations, so a GM can answer "is anyone carrying this?" without changing anything. All locations is the default view; [store] only narrows to what that room would actually put on — its neighbourhood's high school games included, other neighbourhoods' excluded.

Priority fixtures stay visible through both, per §16. Searching a store alias works too: "Creek" finds Elkhorn.

Missing art never hides a game

Crests render from logo / opponentLogo when present and fall back to branded initials when absent or broken. One event — Chiefs at Eagles — deliberately carries remote logo URLs the sandbox blocks. Open it: the art fails, the event does not.

Before this can go live

  • Authorize admin@goodlifebars.com and create the Good Life Sports calendar; all reads through a Hub API route, no key in the browser.
  • Stand up the listings ingestion with sourceUrl and verifiedAt on every row — never publish an unverified guess.
  • Populate store_channel_map from the real DIRECTV lineups per service address.
  • Run the Hub job alongside the Codex heartbeat for one day, diff, then pause Codex — in that order.
Good Life Brand Playbook 2026 v1 · Colour from src/styles/theme.css; dark brand #E86F78, not §10's #E05A64 · Every pairing measured against WCAG AA