trails/openspec/changes/komoot-import/proposal.md
Ullrich Schäfer c7c1c275df
Add 8 proposed changes and old trails analysis
Proposed changes (all with proposal, design, specs, tasks):
- app-navigation (9 tasks) — nav bars for both apps
- planner-landing-page (7 tasks) — standalone landing page
- planner-multiplayer-awareness (13 tasks) — participants, cursors, names
- changelog (13 tasks) — public changelog with "what's new"
- transactional-emails (15 tasks) — magic link + welcome emails
- planner-features (18 tasks) — no-go areas, notes, recovery, rate limits
- komoot-import (23 tasks) — Komoot tour import
- route-features (37 tasks) — sharing, multi-day, spatial, photos

Also adds docs/old-trails-analysis.md with feature analysis from the
older trails project.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 03:57:20 +01:00

1.4 KiB

Why

Users switching to trails.cool have years of tours on Komoot. Without import, they start with an empty Journal — no history, no motivation to switch. A one-click Komoot import lets users bring their existing tours and start using trails.cool immediately.

What Changes

  • Add Komoot account connection flow (email + password → API credentials)
  • Import Komoot tours as Journal activities with route data
  • Batch import with progress tracking, deduplication, and error handling
  • Integration settings page to manage connected accounts and trigger imports
  • Fetch full tour GPX (not just metadata) so imported routes have geometry

Capabilities

New Capabilities

  • komoot-import: Connect a Komoot account, import tours as activities with routes, track import progress, deduplicate on re-import

Modified Capabilities

  • route-management: Routes can now be created via import (not just manual creation), with an external source tracking field

Impact

  • Database: New tables for integration connections and import batches in journal schema
  • Files: New routes (/integrations, /api/integrations/*), new server utilities for Komoot API, new DB schema tables
  • Dependencies: No new packages needed — uses fetch for Komoot API, existing Drizzle for DB
  • Privacy: Komoot credentials stored encrypted. Must be documented in privacy manifest.
  • External: Komoot API (api.komoot.de) — basic auth, no official developer program