About this project
Braindance is a cross-platform game-tracking application built with Kotlin Multiplatform and Compose Multiplatform, sharing UI and logic across Android, iOS, and browser (Wasm) clients. The backend is a Kotlin/JVM Ktor API that proxies data from the IGDB database and GamerPower giveaway service.
Core features include searching and exploring game details, adding games to favorites, tracking release dates via an integrated calendar, discovering game giveaways, and reading the latest game news. All client platforms call the backend for IGDB and GamerPower data.
The project layout separates concerns: androidApp (Android host), shared (Compose UI, app logic, networking for all platforms), iosApp (Xcode/SwiftUI host), webApp (Compose Multiplatform browser host), and backend (Ktor API). The backend is versioned independently from the mobile apps; the current mobile release is 0.3.1 and the backend is 0.3.2.
IGDB authentication uses a Twitch developer application's client ID and client secret (no separate API key); GamerPower requires no API key. Twitch credentials are stored in the backend runtime secret store and never included in client builds. The backend URL is embedded in client builds but is not treated as a secret.
Deployment: GitHub Actions tests and packages the backend, publishing a container image to GHCR from master. A Cloud Run deployment guide is provided for runtime configuration and cost controls. The web client is published to a web-app branch with static files, supporting custom domains via GitHub Pages. The project can be built without a backend URL, but a reachable backend with Twitch credentials is required for IGDB-powered flows.
Requirements include JDK 21, Android SDK API 37 for Android, macOS with Xcode for iOS builds, and a container host for the backend. The project is licensed under GPL-3.0 and is actively under development.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.