Why people self-host Datetime.app
Datetime.app shows the exact current time, UTC, and the time in cities around the world on one clean page, with a timezone converter and developer details such as Unix timestamps and ISO 8601 strings. People self-host it when they want a time.is style clock on their own domain or intranet, with analytics and ads switched off unless they turn them on.
The tradeoff is scope: it is a stateless web app, not a time server, so it does not replace NTP on your machines. The clock accuracy check also calls the public WorldTimeAPI from each browser, which means a fully offline network will lose that one feature.
What Datetime.app does well
- Local time with a 12 or 24 hour toggle, a sync indicator that shows how far your device clock drifts, and UTC right next to it.
- A row for each city you pick, with a strip across the hours of the day so you can spot a meeting slot that works for everyone.
- A developer panel with the IANA zone name, GMT offset, daylight saving flag, Unix timestamp, UTC string, and ISO 8601 output.
- Extra time tools on the same site: a year progress bar, an age calculator, world holidays, a timezone list, and pages for individual cities.
- Light and dark themes and translated interfaces, so the same instance works for a team spread across countries.
Who Datetime.app is for
Datetime.app suits remote teams that keep checking what time it is for a colleague, developers who want timestamps and offsets without opening a terminal, and anyone who uses time.is or timeanddate.com daily and would like a copy without ads on their own server. It also works well as a wall display or a pinned browser tab. If you need a time server for your network, run NTP or chrony instead; this app only shows time.
Deployment notes
Datetime.app is listed with support signals for linux, docker. Check the upstream documentation before exposing it to the internet, review authentication defaults, and keep backups outside the primary host.
The project publishes an image to GitHub Container Registry. Pull ghcr.io/airyland/datetime.app:latest and run it with port 3000 exposed, or use the docker-compose.yaml in the repository, which does the same with a restart policy. There is no database and nothing required in the environment, so there is nothing to back up. The analytics script and the AdSense tag only load when their NEXT_PUBLIC_ variables are set, so a plain run sends no tracking. Put it behind a reverse proxy with HTTPS if you share it beyond your own network. Note that browsers still contact worldtimeapi.org for the accuracy check and open-meteo.com for sunrise and sunset times. To build it yourself, the repository is a standard Next.js app: pnpm install, then pnpm build and pnpm start.
Common questions about Datetime.app
Is Datetime.app a good time.is alternative?
For everyday use, yes. It covers the parts most people open time.is for: the exact local time, how far your clock is off, UTC, and the time in other cities. time.is has a longer history and more city data. Datetime.app adds a developer panel and can run on your own server.
Does it need a database or any setup?
No. It is a single stateless container. Start it, open port 3000, and it works. The cities you add and your 12 or 24 hour choice are saved in the browser's local storage, so updating means pulling a new image and restarting.
How accurate is the clock?
Every ten seconds the page asks WorldTimeAPI for the current time and shows how far your device clock is off. The time you see is still your device clock, so the indicator is what tells you whether to trust it. If WorldTimeAPI is blocked, the clock keeps working and the check simply stops updating.