# CruxCoach > Open-source Android app for the Kilter Board, MoonBoard and five more training boards (Tension, Grasshopper, Decoy, So iLL, Touchstone). Browse climbs, light up holds via Bluetooth LE, log ascents, and import your Kilter logbook — without an account, without Google services, without user tracking. Licensed GPL-3.0, distributed via Zapstore and a one-click direct APK selector backed by Codeberg and a verified Zapstore mirror. CruxCoach is a non-commercial, community-developed Android application. It is not affiliated with, endorsed by, or sponsored by Kilter, LLC, Moon Climbing, Tension Climbing or Aurora Climbing — board names are used descriptively to indicate hardware compatibility (nominative fair use). The project's primary source repository is hosted on Codeberg, with a read-only mirror on GitHub for discoverability. The website at cruxcoach.org is served via Codeberg Pages. ## Site - [Homepage (English)](https://cruxcoach.org/): features, install options, screenshots - [Homepage (Deutsch)](https://cruxcoach.org/de/): same content in German - [Kilter app alternative & Aurora migration guide](https://cruxcoach.org/kilter-board-app-alternative.html): how the independent CruxCoach app differs from the current official app, plus step-by-step Aurora logbook import (German: /de/kilter-board-app-alternative.html) - [MoonBoard app for Android](https://cruxcoach.org/moonboard-app.html): free, open-source MoonBoard app; full official catalogue across five configurations; runs without an account or Google services, including on de-Googled Android (German: /de/moonboard-app.html) - [Board locations map](https://cruxcoach.org/boards/): interactive world map of climbing-board venues - [Board locations directory](https://cruxcoach.org/boards/list.html): static, text-only list of every venue (best machine-readable source) - [Imprint](https://cruxcoach.org/imprint.html): legal information, hosting details, trademark notice - [Privacy](https://cruxcoach.org/privacy.html): data handling and contact-form policy - [Support the project](https://cruxcoach.org/support.html): donation options and ways to contribute - [Mirror (GitHub Pages)](https://cruxcoach.github.io/): byte-identical fallback mirror if cruxcoach.org is unreachable ## Source code and releases - [Codeberg — primary repository](https://codeberg.org/CruxCoach/CruxCoach) - [GitHub — read-only mirror](https://github.com/CruxCoach/CruxCoach) - [Releases (APK + SHA-256 sidecar)](https://codeberg.org/CruxCoach/CruxCoach/releases) - [Issue tracker](https://codeberg.org/CruxCoach/CruxCoach/issues) - [Changelog](https://codeberg.org/CruxCoach/CruxCoach/src/branch/main/CHANGELOG.md) - [Security policy](https://codeberg.org/CruxCoach/CruxCoach/src/branch/main/SECURITY.md) - [Contributing guidelines](https://codeberg.org/CruxCoach/CruxCoach/src/branch/main/CONTRIBUTING.md) - [Trademark policy](https://codeberg.org/CruxCoach/CruxCoach/src/branch/main/TRADEMARK.md) ## Distribution channels - [Zapstore](https://zapstore.dev/apps/com.cruxcoach.android) — recommended, auto-updates, Nostr-native verifiable builds - The website's single direct-APK button uses a first-party, no-log server-side health selector. It redirects only after the click to the available verified source and records one coarse daily click bucket without an identifier. - [Direct APK download from Codeberg](https://codeberg.org/CruxCoach/CruxCoach/releases/download/v0.2.1/CruxCoach-v0.2.1.apk) — direct link to the current release, kept up to date automatically; manual sideload, `.apk.sha256` integrity sidecar at the same URL + `.sha256` - [Direct APK fallback on Zapstore CDN](https://cdn.zapstore.dev/fb1334ce0113ed821549b35e7480ab800d8c76d9a691b7d58da38a2a780078e4) — content-addressed mirror of the exact same APK, kept in lockstep with the Codeberg link - Source build — clone the Codeberg repo and run `./gradlew :androidApp:assembleDebug` - [Obtainium](https://github.com/ImranR98/Obtainium) — open-source installer that tracks the Codeberg releases directly; add `https://codeberg.org/CruxCoach/CruxCoach` as a Codeberg source. No listing process, works today. - Planned future channel (no specific timeline): F-Droid main. IzzyOnDroid is ruled out — its inclusion policy rejects apps created in whole or in part by generative AI tools. - Not on Google Play ## Project facts - Current version: 0.2.1. See the changelog for dated release notes. - Platform: Android 8.0 or later, with Bluetooth Low Energy - License: GNU General Public License v3.0 - Hardware compatibility — fully interactive (browse catalogue, render climb, light holds over Bluetooth, set own climbs): Kilter Board (Original and Homewall, all sizes and angles), MoonBoard (five configurations: 2016, Masters 2017, Masters 2019 and MoonBoard 2024 each at 25° and 40°, Mini 2020 at 40°), Tension, Grasshopper, Decoy, So iLL, Touchstone — seven board families in total. - Map-only info layer (location data only, no climb catalogue and no Bluetooth control): the original Aurora board and 12 Climb. These appear on the board-locations map but not in the in-app climb browser. - Identity: Nostr (decentralized; no email, no password, no central server) - Personal data: encrypted at rest with SQLCipher, keys in Android Keystore. Personal and training data is not sent to analytics; optional network features are described below. - Optional encrypted cloud backup (opt-in, off by default): data is encrypted on-device with a key derived from the user's Nostr identity, then mirrored across the open Nostr network and Blossom storage. The maintainer cannot decrypt it; only the user's Nostr key can. - Optional climb publishing (opt-in, user-initiated): users can explicitly publish climb data to public Nostr relays. - Climbs database (as of July 2026): ~652,000 listed climbs across the seven interactive boards, all browsable offline with filters for grade, angle, quality, moves, and setter. Per board: Kilter ~217,300; MoonBoard ~272,750 (the full official catalogue across all five supported configurations); Tension ~132,200; Grasshopper ~20,000; Decoy ~7,500; So iLL ~1,500; Touchstone ~1,400. Counts grow as setters publish new climbs. - No user tracking, advertising, third-party analytics SDK, or Google Mobile Services dependency. The website keeps only immediate daily page/click aggregates plus one same-tab Zapstore→direct-APK fallback count. That fallback is combined locally from a 30-minute timestamp in sessionStorage; no session identifier or timestamp is sent. Current app release 0.2.1 sends no analytics event; the upcoming 0.2.2 release will add one identifier-free event after a verified in-app updater download, containing only target version and source. Neither analytics payload contains, and the analytics system does not store, a user, device, account, session, or installation identifier. - Languages: English (default), German - Architecture: Kotlin Multiplatform shared module + Android-specific Jetpack Compose UI ## Contact - Issue tracker (preferred): https://codeberg.org/CruxCoach/CruxCoach/issues - Press: press@cruxcoach.org (forwarded to maintainer) - Security: encrypted Nostr DM per [SECURITY.md](https://codeberg.org/CruxCoach/CruxCoach/src/branch/main/SECURITY.md) - Mastodon: https://mastodon.social/@cruxcoach - Nostr: npub1uadpshqpn5ysf82lev8zngkvn07szmkq7mvf9lyc7ml7qxq6fqxsmrqt2s ## Disambiguation CruxCoach as described here is the open-source Android app at cruxcoach.org. It is not related to other products with similar names, including cruxcoach.app, cruxcoach.com, or cruxcoach.vercel.app.