Monsters Compendium is an open-source Kotlin Multiplatform application for Android, iOS, Mac, Windows and Linux, offering extensive information on creatures from the Dungeons & Dragons 5th edition role-playing game. The default content is derived from the SRD (System Reference Document), providing a solid foundation for users. Furthermore, the app supports the addition of new custom content, enhancing its versatility and adaptability for players and game masters alike.
Run the following command on the root project directory.
./gradlew app:jvmRun -DmainClass=MainKt --quiet
You can run the app using Android Studio for Android and xCode for iOS.
The following is an overview of the key technologies and libraries used in this Kotlin Multiplatform project, each with a brief description and a URL for further information:
- Compose Multiplatform: Declarative framework for sharing UIs across Android, iOS, and Desktop. Based on Kotlin and Jetpack Compose.
- AndroidX Activity Compose: Jetpack Compose integration for Android Activity.
- Lifecycle Runtime Compose: Lifecycle-aware state collection helpers for Compose.
- Google Material Design: Material Design components for Android.
- Coil: Multiplatform image loading library backed by Kotlin Coroutines.
- Ktor Client: A multiplatform asynchronous HTTP client for Kotlin, providing a clean and extensible API for making network requests.
- Koin: A pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform.
- SQLDelight: A multiplatform SQLite library that generates Kotlin typesafe APIs from SQL statements.
- Multiplatform Settings: A library that provides a simple and consistent API for persisting key-value data across iOS, Android, and JVM platforms.
- Kotlin Coroutines: A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- Kotlin Flow: Stream of data that can be computed asynchronously. Built on top of Kotlin Coroutines.
- Kotlin Serialization: Multiplatform JSON serialization library for Kotlin.
- Kotlin DateTime: Multiplatform date and time library for Kotlin.
- Kotlin Immutable Collections: Persistent and immutable collection types for Kotlin.
- Amplitude Analytics: Product analytics SDK for tracking user behavior. Android & JVM / iOS.
- Amplitude Experiment: Feature flags and A/B experimentation SDK. Android & JVM / iOS.
- Firebase Analytics: Google event analytics for measuring app usage. Android / iOS.
- Firebase Crashlytics: Crash reporting and stability monitoring. Android / iOS.
- RevenueCat: Cross-platform SDK for in-app purchases and subscriptions.
- Google Mobile Ads (AdMob): Ad network integration for Android.
- User Messaging Platform: GDPR/consent management for ad compliance.
- Color Picker Compose: Compose color picker component.
- Multiplatform Markdown Renderer: Renders Markdown content in Compose Multiplatform.
- FileKit: Multiplatform file picker and dialog library.
Currently, there is no dedicated backend for the app. The app retrieves the data from static JSON files stored here. The JSON were formatted from the API https://dnd5eapi.co.
The content in this app is licensed under the Open-Gaming License (OGL). The content and license can found at the D&D 5th Systems Reference Document (SRD). Dungeons & Dragons (D&D) is a trademark of Wizards of the Coast company.
The icons used in this app have a free license. They are designed by macrovector from Freepik, Freepik from Flaticon and Material Design from Google.
DnD 5th edition monster compendium app
Copyright (C) 2026 Alexandre Gomes Pereira
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.


