Back to Roadmap

Climbing Logging

Per-ascent structured logging for climbing sessions. Fully designed in SYNTHESIS §10.3 based on research of Vertical Life/8a.nu, Kaya, theCrag, OpenBeta, and Stokt.

Table: climb_logs

  • FK to activities — a bouldering/climbing activity has N climb_logs
  • Grade: free string ('V4', '6b+', '5.11a') + grade_system tag ('v_scale', 'font', 'yds', 'french', 'ewbank', 'uiaa', 'wi')
  • Style: 'onsight', 'flash', 'redpoint', 'toprope', 'attempt', 'repeat' — universal across all 7 climbing platforms researched
  • Attempts: integer count
  • Sent: boolean
  • Subjective feedback (8a.nu pattern): felt_hard, felt_easy, quality_rating (1-5 stars)
  • Optional detail: wall_angle, climb_name, location, external_route_id (OpenBeta UUID)
  • Per-ascent equipment: optional equipment_id FK (different shoes per problem)

Grade handling

  • Use @openbeta/sandbag npm library for grade parsing, validation, cross-system conversion, and numeric comparison
  • Supports 11 grade systems
  • Do NOT build custom grade logic

Depends on

Schema Migration

Reference

See docs/api-research/SYNTHESIS.md §10.3 (Sport-Specific Structured Logging).

Status
Backlog
Priority
Normal
Platform
iOS
Date
1 month ago