SSI Sync
A mobile-first PWA that pulls dives from Garmin and Suunto and uploads them straight into your My SSI logbook.
Try it yourself
Key Features
- •Auto-syncs completed dives from a connected Garmin or Suunto account.
- •Manual Suunto DeviceLog JSON import as a backup path.
- •Parses depth, duration, temperature, and GPS from each dive.
- •Suggests nearby SSI dive sites from the dive's GPS data.
- •Skips dives already uploaded, so re-syncing stays safe.
- •Installable as a PWA for a native-feeling mobile workflow.
Development
SSI Sync is a TypeScript PWA bundled with esbuild and deployed on Vercel. Neither Garmin nor Suunto offers a public personal API, so their integrations were built from scratch rather than relying on unofficial libraries.
A good part of the work is in data quality: reconciling conflicting readings between a watch's summary and its raw export, deduplicating dives across sync batches so a re-sync never creates doubles, and handling edge cases like missing GPS or inconsistent site matches.
Role & Impact
I designed and built SSI Sync end-to-end - from the Garmin and Suunto integrations to the PWA frontend and deployment - and have refined it over months of real dive trips, working out edge cases in duplicate detection, GPS handling, and device quirks along the way. It started as a personal tool to stop re-entering dives by hand, and it's now the workflow I use after every dive.
Access is invite-only. If you'd like to try it, reach out at hello@jeromesommerfeldt.de.