Codename. The final project name is an open decision (ADR-0008).
An open-source, self-hostable, cross-platform sports platform (iOS, Android, Web) with a feature set comparable to established sports-tracking platforms and no paywall on core functionality.
Status: pre-alpha, scaffold only. Current focus is MVP-0: a reliable, verifiable GPS tracking engine (roadmap).
Your data is exportable · core features are never paywalled · tracking works offline · data quality is explicit · metrics are versioned and reproducible · self-hosting is a real mode, not an afterthought · privacy by design · a modular monolith, not premature microservices. Full list in docs/product/vision.md.
| Path | Contents |
|---|---|
apps/android |
Jetpack Compose app, native tracking adapter |
apps/ios |
SwiftUI app, native tracking adapter (Xcode project generated by XcodeGen) |
apps/web |
React + TypeScript web app (includes the admin area) |
shared/ |
Kotlin Multiplatform: domain, tracking (pipeline interfaces), metrics |
backend/ |
Ktor modular monolith, Flyway migrations |
infrastructure/ |
Docker Compose stack for local dev and self-hosting |
tests/gps-fixtures/ |
Reference GPS traces with expected results |
docs/ |
Product, architecture, ADRs, design docs, metrics, privacy, runbooks — start at docs/README.md |
Prerequisites: JDK 21, Node 22+, Docker. Android Studio for Android; macOS + Xcode 16+ and XcodeGen for iOS.
# Shared logic + backend
./gradlew :shared:domain:jvmTest :shared:metrics:jvmTest :backend:test
# Local stack (PostGIS, S3-compatible storage, backend)
cp infrastructure/compose/.env.example infrastructure/compose/.env
docker compose -f infrastructure/compose/docker-compose.yml --env-file infrastructure/compose/.env up -d --build
curl localhost:8080/health
# Web
cd apps/web && npm ci && npm run devRead CONTRIBUTING.md. Significant decisions go through an ADR; non-trivial features start with a design doc (docs/design).
AGPL-3.0-or-later. Rationale in ADR-0002.