trails/openspec/changes/komoot-import/proposal.md
Ullrich Schäfer fef4051838
Add public import mode to Komoot import spec
Extends the Komoot import change to support two connection modes:

- Public mode: user places their trails.cool profile URL in their Komoot
  bio field; trails.cool verifies ownership via the unauthenticated public
  API (content_text field), then imports public tours with no credentials stored
- Authenticated mode: existing email + password flow, imports all tours
  including private ones

The profile URL verification doubles as cross-platform discovery — the
link stays in the Komoot bio permanently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 09:59:51 +02:00

1.8 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 Komoot import lets users bring their existing tours and start using trails.cool immediately.

What Changes

  • Public import (no credentials): user proves ownership of their Komoot profile by placing their trails.cool profile URL in their Komoot bio field. trails.cool verifies via the public Komoot API, then imports all public tours.
  • Authenticated import (email + password): imports all tours including private ones. Credentials stored encrypted.
  • Both modes share the same batch import engine, progress tracking, and deduplication logic.

Capabilities

New Capabilities

  • komoot-import: Two-mode Komoot import — public (bio verification, no credential storage) and authenticated (email + password, all tours including private). Both track batch progress and 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. Connections can be credential-free (public mode).
  • Files: New routes (/integrations, /api/integrations/*), new server utilities for Komoot API, new DB schema tables
  • Dependencies: No new packages — uses fetch for Komoot API, existing Drizzle for DB
  • Privacy: Only authenticated mode stores credentials (encrypted). Public mode stores only the Komoot username. Both documented in privacy manifest.
  • External: Komoot public API (api.komoot.de) — unauthenticated for public tours and profile lookup; basic auth for authenticated mode