Changelog
What's changed in tides.
v0.5.22026-08-02
- A Sign out button in the header (tides#2) — works for admin and magic-link viewer sessions alike; anonymous visitors never see it.
v0.5.12026-08-02
- Magic-link redirects point at the public site address instead of the container's internal one (a browser following the old redirect went nowhere).
v0.5.02026-08-02
- Magic-link viewer sessions: customers land on their own site's dashboard straight from the Analytics tab in their site admin — no tides password. Sessions are scoped to exactly their sites (24h), read-only (no settings/goals editing, no site list beyond their own), and the links are single-use with a 60-second fuse.
v0.5.02026-08-02
- Sign in with OTM: one button on the login page hands you off to the Powered by OTM control plane, which checks your password, your authenticator code and your access to tides, then signs you straight back in here — no second tides password to remember. First sign-in creates your account automatically.
- The email-and-password form still works exactly as before, for anyone without an OTM staff account.
v0.4.02026-08-02
- Your day is your day (tides#1): every day boundary — the Today period, 7d/30d windows, and daily chart buckets — now follows the site's timezone instead of UTC, so an evening in Wisconsin no longer reads as zero visitors today. Existing sites moved to America/Chicago (the previous default was wrong).
- Image upload in the feedback box works (tides#1): the container's public/ directory was read-only to the app. Screenshots now save and attach to filed issues.
v0.3.02026-08-02
- A public landing page: anonymous visitors to tides.poweredbyotm.com now get the harbor almanac — a living tide-curve hero with the current moon phase, the instruments grid, the privacy creed, and the one-line install. Signed-in users land on the site switcher exactly as before.
v0.2.22026-08-01
- A reused hostname no longer inherits the previous tenant's site: registration matches ACTIVE sites only, releases the domain from any deactivated site, and mints a fresh site + API key — the old site's history stays private to its owner.
v0.2.12026-08-01
- Deltas compare like for like: a period that's still running is now measured against the same elapsed slice of the previous one, so a flat site no longer reads as −77% every morning.
- Very long custom ranges chart their most recent buckets instead of silently returning an empty chart for the start of the range.
- Site registration accepts a property's extra domains, and merges them into an existing site — beacons from a customer's own domain are no longer dropped.
- Fewer repeated queries per dashboard render.
v0.2.02026-08-01
- Dashboard: summary tiles with period-over-period deltas, timeseries chart, realtime badge.
- Breakdowns: pages (top/entry/exit), traffic sources (referrers/UTM), locations, devices, custom events.
- Goals: event + path goals with conversion rates, edited from site settings.
- Stats API: summary, timeseries, breakdown, realtime and goals, on a site key or a dashboard session.
v0.1.02026-07-31
- Initial scaffold: ingest pipeline, tracker, sites admin API.