What it does: - Time sync with NTP (atomic-clock precision) - Full alarm management (all 5 alarms) - Reminders/events with labels - Watch settings (illumination, sound, display) - Battery level monitoring - Zero install, zero accounts — all BLE traffic stays local between your browser and the watch
Tech: Next.js + TypeScript, Web Bluetooth API, Material Design 3. Supports 19+ G-Shock models with per-model capability detection.
Live demo: https://gshock.avmedia.org Source: https://github.com/izivkov/gshock-smart-sync-webapp
Can be self-hosted on a Raspberry Pi or any Node-capable server.
Browser support: Chrome/Edge/Opera (desktop & Android). iOS needs Bluefy or WebBLE. Safari and Firefox don't support Web Bluetooth — that's a vendor decision, not a fixable limitation on my end.
One honest limitation: Web Bluetooth requires an explicit user gesture to initiate a connection, so there's no background auto-sync — you click "Pair Watch" each session. Fine for my use case, but worth knowing upfront.
The most interesting part was reverse-engineering the BLE protocol. Happy to go into detail on that if anyone's curious.