Skip to content

Repository files navigation

OpenTopo Japan

OpenTopo Japan is an open-source bouldering topo project for Japan. The goal is to make climbing area information easy to find, easy to maintain, and easy to contribute to without paid memberships or closed editorial workflows.

Beta/testing note: OpenTopo Japan is still early and actively being tested. We are working through UI kinks, improving the browsing experience, and continuing to assemble reliable crag data.

The project starts with three principles:

  • Fast discovery: search by area, problem name, grade, prefecture, approach time, season, style, and access status.
  • Respectful access: access notes, local ethics, closures, parking, toilets, public transport, and landowner guidance are first-class data.
  • Open contribution: topo data is stored in versioned files, reviewed publicly, and licensed clearly so the community can improve it over time.

License

OpenTopo Japan uses a split license:

  • Code: GNU Affero General Public License v3.0. See LICENSE.
  • Content and resources: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. See LICENSE-CC-BY-NC-SA-4.0.

See LICENSES.md for the full licensing policy and which files each license applies to. The non-code content/resource license is non-commercial; commercial reuse of area data, topo data, photos, maps, and other resources requires separate permission.

Repository Layout

OpenTopo is now organized around editable source content and generated static output:

content/              contributor-edited area and boulder JSON
assets/               source photos and map images, organized by area
public/               generated runtime data and copied public assets
src/                  static browser app
scripts/              validation, content build, and static build scripts
dist/                 generated GitHub Pages output

Area source files live under folders such as content/areas/mitake. Each boulder has one JSON file containing boulder metadata, photos, problems, and topo lines. Source photos live under area-first paths such as assets/areas/mitake/boulders/ninja-iwa.

Generated app data is written to public/data, including areas.index.json, areas.json, and one bundle per area. GitHub Pages serves the generated dist/ directory.

Development

The local app is dependency-light and can be run with Node:

npm run build
npm run dev

Useful scripts:

npm run validate         # validate content IDs, grades, landings, and photo refs
npm run optimize:photos  # archive raw masters and cap area photos at 1200px JPEG
npm run build:content    # generate public/data and public/assets
npm run build:static     # generate dist for GitHub Pages
npm run check            # syntax-check browser scripts

Project Docs

Early Roadmap

  1. Validate the information architecture with climbers in Japan.
  2. Continue refining the canonical data format and contribution workflow.
  3. Keep tightening runtime image delivery (WebP/AVIF thumbs via the content build).
  4. Add map search, image topo annotations, and offline-friendly pages.
  5. Create a review workflow for access-sensitive updates.

Non-Goals

  • Replacing guidebooks without permission.
  • Publishing sensitive or restricted areas without local consent.
  • Requiring users to log in just to read public topo data.

Releases

Packages

Used by

Contributors

Languages