Home
The day's fixtures across 120+ leagues — the most-shared URL in the product, and the one piece of state deliberately kept out of it.
/ · src/composed/dashboard-home
Today's fixtures and live scores, trending bets, and the A-Z competition list. Four queries hung off a day and a filter set.
Every choice is in the URL
That matters more here than anywhere else, because this is the most-shared page in the product. A link someone sends should open on the day, the leagues and the scope they were looking at.
Except today
today stays local rather than in the URL, because it is not a choice — it is
new Date().
The server cannot know it without disagreeing with the client: render it on the
server and a reader in Auckland gets the server's idea of today. So it is set in
an effect, and date falls back to it.
The general rule
The URL holds what the reader chose. It does not hold what their device happens to be. Anything derived from the clock or the timezone is client state, and putting it in the address bar makes a shared link wrong for whoever opens it.
It has the right rail
Home and the 100 Club are the two routes with one. Home's holds standings and a Telegram feed that fetch on their own — which is exactly why the rail's content is rendered by the page rather than the shell.