Getting Started

Offline and mobile

How Trailkeep works without a connection, what syncs automatically when you're back online, and mobile-specific UI and device notes.

Trailkeep is built to keep working when your signal drops — with important limits depending on whether you use the website, the Android app, or the iPhone app.

How offline works

Trailkeep uses two layers:

Data cache (always on) — Trips and gear data are cached locally for up to 7 days. Trip and safety edits queue while offline and replay when you reconnect. The return-by countdown runs from cached data on your device — no network needed to see the timer tick. Pack lists are view-only offline (browse cached packs; edits need signal). Gear Vault is online-only — the vault icon is disabled offline.

App shell cache (web only, when enabled) — On the website, a service worker can precache the interface for faster repeat visits. This is separate from your trip data. Live data always comes from the data cache layer above, not the service worker.

iPhone app: The service worker layer does not run inside the native iPhone app. You still get cached trip data and queued edits, but offline behaviour is more limited than on Android or the website — especially after force-quitting the app. See Native apps below.

What you can do offline

From cache — no network needed once data has loaded while you had signal:

  • View previously loaded trips, days, and waypoints
  • View gear lists, categories, and items (lists load in the background when you open the dashboard online — you do not need to open Pack first)
  • Browse the trip and gear dashboards
  • See return-by and Check-in Timer countdowns

If you go offline before pack lists ever loaded this session (and have no prior cache), Plan → Pack shows Pack lists unavailable offline — not an empty "create first list" screen. Open the app online once so lists can cache.

What queues and syncs later

These queue in the background when offline and run automatically in order when connectivity returns:

  • Check in now — GPS is captured at the moment you tap (on your device); the check-in waits for signal to confirm with the server. While waiting, the button shows Not confirmed yet and the timeline says Saved on device · not confirmed.
  • Start trip (Go) on an existing planned trip — Same pattern; your start time is recorded when you tap, not when signal returns.
  • Editing existing trips, days, and waypoints (trips that were on the server before you went offline)

Pack planner: view cached gear lists offline; editing, reorder, and new items need signal. Gear Vault cannot be opened offline (vault icon disabled); if the panel was already open when you lost signal, you can close it but not reopen it until you reconnect.

Check in by text: If you have no data connection, use No data? Check in by text (cell or satellite) under the check-in button — it opens your phone's Messages app with a pre-filled message. Works over regular cell SMS or satellite SMS. When you return, confirm on the Daily progress row (Did your check-in text send?Yes, it sent). You do not need to wait for a reply text from Trailkeep — your phone shows send success or failure; the app syncs when you have data again. A confirmation text back from Trailkeep is planned for a future update. See Satellite SMS check-in (iOS) or Android.

What requires a live connection

Some actions cannot queue because they need the server immediately:

OperationWhy
Create a new tripNeeds server row before offline edits — plan trips while you have signal
Reorder daysServer must persist display order
Edit pack lists (gear tab)View-only offline — reconnect to edit or reorder
Open Gear VaultOnline-only — vault toggle disabled offline
Finish or cancel tripTrip lifecycle and contact notifications
Adjust returnReturn-by deadline must reach the server immediately
Extend timer (+2 hours)Server must anchor the new deadline
Undo check-inBlocked while offline
Cancel overdue alertMust reach the server to stop contact emails
Cloning a trip or gear listFresh limit check from the database
CSV or LighterPack URL importFile/URL fetch and limit check
Sign inAlways live
Real-time collaborative editingWebSocket connection required

Overdue alerts: If you miss your return deadline, Trailkeep alerts your emergency contacts from the server — your phone does not need to be online for that. But a check-in you made offline only counts once it syncs. Check the connectivity strip under the tabs or the dot on your avatar (see below).

Cache is stored in your browser's or app's local storage. In private/incognito mode on the web, storage may be blocked — data is only kept in memory until you close the tab.

Sync status indicator

Connectivity strip (primary) — When you're offline or changes are syncing, a compact bar appears under the Start / Plan tabs with tab-specific guidance. Examples:

SituationStrip shows
Offline on PackView only — Reconnect to edit packs and use the vault
Offline with queued editsOffline — e.g. 2 changes saved on device · Tap for details
Back online, replayingSyncing — e.g. Uploading 2 changes
Just finished syncBack onlineYour changes are synced (brief, then hides)
Replay failedSync pausedTap for details · Reconnect or try again

The user avatar in the header also has a small coloured dot in the bottom-right corner (secondary indicator — always visible when online):

Dot colourMeaning
GreenConnected, all changes saved
Amber (pulsing)Syncing — back online, replaying queued changes
RedOffline — changes are queued locally

Tap the connectivity strip when it shows pending changes or sync paused to see a plain-English list of what is waiting (for example, "Check-in", "Waypoint: Camp"). If sync failed while you were online, Try again uploads the queue once more.

Trip planner rows — When you edit a day or waypoint offline, that row also shows Saved on device beside the day title or under the waypoint name until Trailkeep confirms the change with the server. The Start tab uses stronger copy for check-ins (Saved on device · not confirmed) because emergency contacts are not updated until sync completes.

App updates

When a new version is available on the website, a toast appears once: "Update available — New version ready. Reload when convenient to update." There is no forced reload.

Native app updates come through the App Store or Google Play.

Installing as a PWA

Trailkeep can be installed as a Progressive Web App on the website — it runs with its own icon and no browser chrome.

iOS (Safari only): Open Trailkeep in Safari → Share → "Add to Home Screen." Chrome and other browsers on iOS cannot install PWAs.

Android (Chrome recommended): Chrome shows "Add to Home Screen" or "Install app" in the menu.

Native apps (iOS and Android)

Android appiPhone app
Cached trip/gear dataYesYes
Pending check-ins and edits (sync when back online)YesYes
Return-by countdown offlineYesYes
Service worker shellYesNo
Full offline after force-quitStrongerWeaker shell — trip data and overdue banner restore from cache; auth/profile may need signal once

For serious backcountry use with patchy signal, check in by text (cell or satellite SMS) is the reliable no-data path on any platform.

Mobile dashboard layout

Gear Vault

On desktop (≥1024px), the Gear Vault opens as a sticky sidebar beside your pack list when you tap the gear icon in the Pack list header. The panel is hidden until you open it — tap the icon again or the panel X to close.

Offline: the vault icon is disabled without signal. Pack lists remain view-only offline; vault actions always need a connection.

On mobile (below 1024px) it becomes a full-screen overlay panel:

  • Slide in from the left over a blurred backdrop
  • Tap the backdrop or the X button to close
  • Close automatically if you resize the window above 1024px while one is open

Mobile item row display

On mobile screens (≤744px), item rows use a coloured border system instead of inline icon columns:

  • Left border — signals functional status: blue for worn items / water sources, amber for consumables / resupply points
  • Right border — signals star rating: yellow / red / green matches the star colour

An item that is both worn and starred shows both borders simultaneously. This gives instant status at a glance without expanding the row.

On desktop, the same information is shown via small inline icons in a dedicated column.

Star colour cycle: tapping the star cycles none → yellow → red → green → none. The colours have no enforced meaning — common conventions are yellow (important), red (critical), green (packed and ready).

Finding actions on mobile: tap the chevron ▾ to expand a row, then tap the ⋮ menu for star, type toggles, price, and vault actions. Delete is always visible outside the menu.

The coloured border system only appears in your dashboard. In the shared/public view, mobile uses inline icons next to item names — no border colours.

iOS notes

Input zoom

Safari on iOS auto-zooms when a text input smaller than 16px receives focus. Trailkeep prevents this by setting maximum-scale=1.0, user-scalable=no on the viewport — pinch-to-zoom is disabled while using Trailkeep. The viewport-fit=cover setting ensures content fills correctly on devices with a notch.

GPS permissions

Location permission is requested when you check in or capture GPS on a trip. If capture fails, check-in still completes — coordinates are just omitted. In the native iPhone app, check iOS Settings → Trailkeep → Location if GPS stops working.

GPX file upload

The file picker on iOS opens the Files app / iCloud Drive. GPX files downloaded from other apps (Garmin Connect, AllTrails, Komoot) may need to be moved to the Files app first if they were saved to the source app's private container.

Android notes

GPX file naming

Some Android apps export GPX files with incorrect or missing file extensions. If an upload fails or shows no file selected, rename the file to end in .gpx using a file manager app.

Location permissions

When prompted for GPS access during day completion, select "While using the app" — Trailkeep does not request background location and does not need "Allow always."