Trip Planner

Sharing a trip

How to generate a read-only public link for your trip, what visitors see at each stage, and how the emergency privacy model works.

The shared trip page at /trip/[id] is a public, read-only view of your trip. No login is required to view it.

It is separate from the collaborative edit link. For real-time co-editing with others, see Collaborative editing.

There are three distinct link types in Trailkeep:

  • Read-only trip link — anyone can view your trip (/trip/[id])
  • Gear list link — anyone can view your Pack Planner list (/gear-list/[id])
  • Edit link — collaborators can edit your trip in real time (/edit/[id])

This page covers the read-only trip link only.

  1. Open your trip in the dashboard
  2. Click the Share button in the header
  3. If no link exists yet, click Generate share link
  4. Copy the URL and share it

Links are permanent until revoked. Revoking and resharing generates a new URL — the old link stops working immediately.

What visitors see

📸

Screenshot coming soon

Shared trip — planning state

The shared trip page in planning state: no banner, Upcoming status card, full itinerary below

Always visible (any state):

  • Trip name, dates, trail name (clickable link if a trail URL was set), and status
  • Author username, Pioneer badge, and social profile links
  • Distance and elevation chart
  • Itinerary — days with waypoints, start points, notes, and links (see filtering rule below)
  • Linked gear list (if one was selected when sharing)

Visible only while trip is Active:

  • Trip chat — a live message thread open to anyone with the link

Visible only when SOS is active:

  • Emergency contact details (name, clickable phone, clickable email)
  • Personal details (name, nationality, birth year, height, weight)
  • Medical notes

Emergency contacts and personal details are protected by the database and never sent to the browser unless an SOS alert is active. Read the privacy model section below to understand when the red banner fires vs. when contact data becomes visible — these are not the same moment.

Privacy model — what is visible when

The page has two distinct safety indicators driven by different systems:

StateRed bannerEmergency contacts + personal details
PlanningHiddenHidden ("Privacy protected")
Active, on timeHiddenHidden
Safety timer deadline passed (no SOS yet)ShownStill hidden
Calendar end date passed (no SOS)ShownStill hidden
SOS activeShownVisible
SOS cancelled / trip completedHiddenHidden

The important gap: After the timer fires, there is a window (typically up to 6 minutes) where the red overdue banner is live but emergency contact data is still hidden. The Safety info tab only unlocks once the SOS record has been created in the database. The page polls for banner updates every 10 seconds automatically — but the Safety info tab requires a page reload after the SOS record is confirmed.

Emergency contacts are fetched at the database level with security enforced by a PostgreSQL function that returns data only when a shared trip record AND an active SOS are both present. The data is never sent to the browser otherwise.

Emergency status banner

📸

Screenshot coming soon

Shared trip — overdue banner

Red emergency banner active with overdue time, GPS coordinates, and expanded guidance section

When any overdue condition is active, a full-width red banner appears at the top of the page:

OVERDUE ALERT
Overdue 2 hours • 47.3456, -121.7890 ±12m (Washington, US)
  • Overdue time: shown as minutes for the first hour ("23 minutes"), then hours ("2 hours")
  • GPS: last known coordinates (4 decimal places), accuracy, and reverse-geocoded region. Clickable — opens Google Maps. Shows "Location unavailable" if no GPS has been captured.
  • Click to expand: the banner is a button that expands a guidance block for whoever is looking at the page

The expanded guidance includes: context (common reasons for the alert), first steps (call/text, check mutual friends), when to escalate (2–6 hours, severe weather, dangerous terrain), and a note that the Safety info tab below has full emergency contact details.

The banner updates automatically every 10 seconds — GPS coordinates refresh as new check-ins arrive without a page reload.

Status card

📸

Screenshot coming soon

Shared trip — active state with GPS

Shared trip in active state: green Live pulse dot, last known location card with day name, timestamp, coordinates, and View on Map link

The status card appears above the itinerary and has two tabs: Status and Safety info.

The Status tab label changes with the trip state:

StateLabelVisual
Planning"Upcoming"Clipboard-clock icon
Active, no alert"Live"Green pulsing dot
Active, SOS active"Live"Amber pulsing dot — first visual signal something is wrong
Completed"Complete"Green checkmark

The Status tab content shows different information depending on context:

  • Planning: Start date ("Starts Mar 15, 2026") or "Awaiting departure" if no date is set
  • Active with GPS data: Last known location card — day name (links to that day in the list), timestamp, coordinates with accuracy, and a "View on Map" link to Google Maps
  • Active, no check-ins yet: Start timestamp ("Started Mar 15, 2026 at 09:15") or "Trip in progress"
  • Completed with GPS: Same last known location layout as active — historical snapshot
  • Completed, no GPS: "No check-ins recorded"

The Safety info tab shows "Privacy protected" by default and only shows emergency contacts and personal details when SOS is active.

📸

Screenshot coming soon

Shared trip — Safety info tab open

Safety info tab with emergency contacts visible: primary contact name, clickable phone and email, personal details section

Chat

The chat section is only visible while the trip is Active. It disappears when the trip is completed (messages are not deleted, just no longer displayed).

Anyone with the link can send a message — no account required.

Anonymous identity: On first visit, a hiking-themed display name is auto-generated (e.g. "SteadyHiker") and stored locally in the browser. The name persists across page refreshes. It is editable inline directly above the message input — always visible, no settings menu needed.

Message limits: 200 characters per message, with a character counter shown below the input. Enter sends, Shift+Enter inserts a line break.

Desktop layout: An inline collapsible section. The header shows the last message timestamp ("• 3 minutes ago" or "• No messages yet"). Collapsed by default.

Mobile layout: A tappable card that opens the full chat as a full-screen dialog. Same functionality as desktop but optimised for thumb use.

Messages sent from the shared view appear in the trip owner's dashboard chat too. The thread is public — all participants see all messages. Avoid anything sensitive.

Day timeline

The itinerary is shown as a vertical timeline of days. Empty days are not shown — a day appears only if any of these is true:

  • The day has been marked as completed
  • The day has a start point name set
  • The day has at least one waypoint with any meaningful content (name, distance, notes, URL, or a type indicator)

A trip with 7 planned days may only show 4 in the shared view if 3 were left empty during planning.

Each day card shows:

  • Day name (dimmed if completed) with elevation gain/loss inline (if GPX elevation data is present)
  • Waypoint timeline with distance badges, price badges, and type indicators (water source, resupply point, travel segment)
  • Waypoint notes shown inline below each name row

Completed days additionally show:

  • A green "Completed" badge with timestamp
  • An expandable "Location details" section (collapsed by default) with exact coordinates, accuracy, recording time, and a Google Maps link — this is designed for emergency contacts and SAR coordinators who need precise coordinates

Cloning a trip

Logged-in visitors see a Clone button (icon) in the trip header. Cloning creates a full copy of the trip — all days, waypoints, and itinerary — in their own Trip Planner.

An account is required to clone. Cloning is subject to the visitor's trip limit — if they are at their limit, the clone is blocked with a notification.

Also copying the linked gear list

If the trip has a linked gear list, a checkbox appears: "Also copy linked pack". When checked, both the trip and the gear list are cloned.

If the visitor has reached their list limit, the trip still clones successfully but the gear list is skipped — a separate toast explains this. The two operations are independent.

Including a gear list

When sharing a trip you can optionally attach one of your gear lists so visitors can see your kit alongside the itinerary.

To include a gear list:

  1. Open the Share button in the planner toolbar
  2. Generate the share link if one does not yet exist
  3. Tick Include gear list and select a list from the dropdown

The gear list appears on the shared trip page for anyone with the link. Visitors can copy individual items directly to their own Gear Vault. You can change or remove the attached list at any time by reopening the Share dialog.

Search engine indexing

Shared trip pages are not indexed by search engines — they are accessible only to people who have the link. Trips are treated as private by design. Your emergency contacts, itinerary, and personal details are not discoverable via search.

Use Stop Sharing in the Share dialog to revoke the link.

Active trips cannot have their link revoked — the link must remain live while the safety timer is running so that emergency contacts and services can access it if needed.