The hours I’ve wasted accepting problems that aren’t caused by the network or the app or the API, but simply bad times,
We already have NTP, PTP (IEEE-1588), linuxptpReal grandmaster, fancy NIC. That’s not what this thing is about. i wanted one very cheap way To answer exactly one question for someone who has an Android/iPad/laptop:
Is it me or is it the edge box?
So I created a single-file web app for that.
It’s just an HTML file that you can stick into GitHub, serve from nginx on a local gateway, and tell a technique:
open
/probeAnd if it’s green, it’s not you.
it what is not A PTP/IEEE-1588 monitor and it Will not done Provide you with sub-μs accuracy. this also Will not done Prove that the server is telling the truth.
it’s just one Browser-level sanity checkingit compares Date.now() to (customer) /time (server), draws a small sparkline, and turns green/red. Because it’s a PWA, you can “Add to Home Screen” and keep it around.
In short, this tells you:
You and this server have been in disagreement for ~X ms and the disagreement is/is not stable.
This is enough to stop chasing ghosts.
Field people already have a browser. they can kill http://192.168.10.1/timeThey can bookmark a page, It can run where you can’t run linuxptp But you may still be confused by the flow of time.

/time endpoint
The server side is just a silly route that returns the wall time (system CLOCK_REALTIME) as JSON, exposed with CORS so phones can call it:
That’s it.
one file pwa
Here’s the whole thing:
Edge Time Probe (Debug)
Offset vs /time: – ms
Green = |offset| ≤ 50ms and jitter is low. This is a sanity check, not PTP. But…latency?
We used:
offset = server_time - client_time + rtt/2;
he believes symmetrical Latency (15 ms there, 15 ms back). Over the public Internet, LTE, satellite, or the odd SD-WAN, this is not true. On a flat site network close to the gateway? Often quite good.
Therefore its estimate will be higher or lower on asymmetric links. The goal is to tell the human that “this clock is clearly off,” No To discipline PHC.
Why not just use PTP?
Because browsers can’t.
PTP (IEEE-1588) is usually at a lower layer, often requires hardware timestamping, and means actually synchronize Clocks at sub-ms/sub-μs. Our little PWA is just a audience,
If it says you are off by 200 ms, go to the box and run linuxptp/NTP Diagnostics. This is PWA PeechatkiNot there. My,
real world use
- place html here
http://edge-gw.local/probe.html - Keep
/timeButhttp://edge-gw.local/time - Tell the tech: “Open probe → If red, take screenshot and send”
- You get: the offset, the rough jitter, and proof they were on the right gateway
No VPN, no secrets.
Its purpose is not to help you win a timing competition. This means that reduce tickets By telling you fast whether the customer’s watch is out of order or not.
Sometimes you just need “Edge AI” 🙂
