How it works
Atomic synchronisation
Your browser samples a public time signal (Cloudflare trace and the HTTP Date header), corrects for round-trip latency using Cristian's algorithm, and combines multiple samples with rolling-median outlier rejection. The result is rendered via requestAnimationFrame so backgrounded tabs do not drift. The displayed drift number shows the live skew between your device clock and the time signal.
Location pages, on demand
Type a city, country, or IANA zone into the search box. We resolve the input (case-insensitive, supports natural-language queries like "time in iran"), redirect to the canonical city URL, and render a deterministic page containing:
- Live atomic-synced local time
- Sunrise and sunset (via SunCalc)
- Moon phase and next phase change
- DST status and next transition
- Upcoming public holidays
- Neighbouring cities in the same zone
- Structured data (Schema.org JSON-LD) for search engines
Machine-readable layer
Every page is mirrored by a JSON endpoint and an MCP tool. AI agents can discover the site via /.well-known/agent.json, /.well-known/mcp.json, /openapi.json, /agents.md, and /llms.txt. See the For Agents page for full details.
Self-updating sitemap
/sitemap.xml is generated on every request and includes every supported city, country, and IANA zone — so new locations become indexable the moment they are reachable.