Skip to content
Docs

Command palette

Jump to a page or view, or find a todo by name.

Changelog

Dates in your time zone, without a hydration error

Timestamps in the web app render in the visitor's time zone and language, and the settings page no longer throws a React hydration mismatch outside UTC.

Markdown

Every timestamp the web app shows (settings, sessions and passkeys, the activity table, the admin user and audit tables, flags, todos, imports and the files trash) now goes through one formatter, useFormatDate and <FormattedDate> in apps/web/src/platform/format/. Before, each place formatted on its own in whatever time zone the code ran in: the server rendered in UTC, the browser in local time, and React threw a hydration text mismatch (#418) for every visitor outside UTC. The settings page did so on every load.

The browser now stores its time zone in a tz cookie, and the server renders dates in it, so from the second page view the HTML already shows the times the visitor will see. A first visit renders in UTC and corrects the time right after hydration, without an error. Dates also follow the UI language now (05.11.2026 in German), where most of them were English before. A test fails the build if a feature formats a timestamp any other way; the rule is W16.

Edit on GitHubDocumentation is in English.