Skip to the content.

Offline mode

Boats lose signal. Submarius is designed for that — every endpoint degrades gracefully and the most-used features keep working with no connectivity.

Offline base map

Submarius downloads a bathymetry-only vector tile pack for any region you mark as “offline area” before you leave the dock. The pack includes:

Deliberately not included: street-level OSM POI render. The marine chartplotter aesthetic is intentional — when you’re a mile offshore, seeing every restaurant in the nearest harbour is noise.

Tiles are stored in Dexie (IndexedDB) on the client and persist between app launches. There’s no separate “download for offline” flow per trip — once a region is marked offline, it stays available.

Cached conditions

The last successful fetch of conditions (forecast, tide, clarity, verdict) for any location you’ve viewed is cached on-device with a freshness timestamp. When offline, the app shows the cached value with a clear “last updated 4 hours ago” indicator.

Critical: the verdict is recomputed on-device from the cached inputs, not just shown statically. So if the cached forecast says wind has dropped from 25 to 8 knots over the next six hours, and you scroll through the day, the verdict updates as if you were online.

Mutations queued for sync

Anything you do that would change server state is queued locally and replayed when connectivity returns:

The queue lives in Dexie (syncQueue) and is processed FIFO on the next successful network round-trip. Conflicts (e.g. you edited a spot offline that your buddy also edited) are resolved last-write-wins for simple fields and merged for collections.

What requires connectivity

Plain about what doesn’t work offline:

Why this matters

Boat connectivity is unreliable in the geographies Submarius is most useful in. A nearshore-only app that fails the moment you cross the inlet is a bad app. The offline-first architecture is one of the project’s foundational design principles, not a polish item.