# Offline Strategy ## Offline requirement Offline use must cover riding-critical information, not only maps. ## Offline pack contents A trip offline pack should include: - route geometry, - route alternatives, - daily stages, - elevation profile, - selected vector/raster map area, - route-corridor POIs, - emergency/bailout POIs, - local rule cards, - cached weather forecast at departure, - saved bookings/deep links/addresses, - user notes, - GPX/TCX/FIT exports, - report queue for later upload. ## Pack scope Use a corridor-based pack: ```text primary corridor: 5 km on either side of route logistics corridor: 20 km around stage endpoints and bailout towns map context: bounding box with simplification by zoom level ``` ## Offline modes ### MVP offline mode - Download planned route, POIs, stage plan, rules, and GPX. - Allow map viewing if tile pack is present. - Allow report capture and sync later. - Allow basic distance-to-next-critical-thing calculation from cached data. ### Production offline mode - Offline rerouting using a compact regional routing graph. - Offline POI search. - Offline rule lookup. - Offline elevation sampling. - Offline exports. ## Storage model Mobile app storage: - SQLite for structured trip data and POIs. - File storage for tile packs and exports. - Key-value storage for user preferences and sync state. ## Pack versioning Each offline pack should include: ```json { "pack_id": "pack_123", "trip_id": "trip_123", "created_at": "2026-06-30T00:00:00Z", "data_versions": { "osm_extract": "geofabrik-europe-germany-2026-06-29", "poi_index": "2026-06-29", "rules": "2026-06-01", "weather_cached_at": "2026-06-30T06:00:00Z" }, "bbox": [6.0, 47.0, 15.0, 55.0], "route_buffer_km": 5, "expires_at": "2026-07-14T00:00:00Z" } ``` ## User-facing warnings Before departure, show: - which items are available offline, - which items are stale, - which route sections lack cached POIs, - whether offline rerouting is available, - which exports are saved.