# Confetti 🎊

[
](https://play.google.com/store/apps/details?id=dev.johnoreilly.confetti)
[
](https://apps.apple.com/us/app/confetti/id1660211390)
Kotlin/Compose Multiplatform GraphQL project (backend and clients) to allow viewing of conference information for a range of conferences.
Includes:
- Compose Multiplatform (CMP) clients (Android, Desktop and Web)
- Compose for Wear OS client (contributed by https://github.com/yschimke)
- Android Auto and Automotive OS (contributed by https://github.com/cmota)
- [Apollo GraphQL](https://github.com/apollographql/apollo-kotlin) based Kotlin Multiplatform shared
code
- GraphQL backend
### Contributors
### Related posts
* [Swift/Kotlin ViewModel alignment in a Kotlin Multiplatform project](https://johnoreilly.dev/posts/swift-kotlin-viewmodel-kmm-comparison/)
* [Using KMM-ViewModel library to share VM between iOS and Android](https://johnoreilly.dev/posts/kmm-viewmodel/)
* [Consuming Compose for iOS in a SwiftUI application](https://johnoreilly.dev/posts/swiftui-compose-ios/)
* [Adding embeddings/RAG support to the Koog-based AI agent in Confetti](https://johnoreilly.dev/posts/confetti-koog-rag/)
### Building
Use Android Studio/IntelliJ to build/run the Android client (requires a recent
Android Studio release supporting AGP 9.1).
Requires Xcode 26 or later for the iOS client (Apple silicon only — the Intel
simulator target was removed).
JDK 17+ is required.
### Screenshots

### Gemini functionality
Gemini based talk recommendations for particuar conference are included in the mobile clients (if `gemini_api_key` configured in `local.properties`). Desktop client allows free entry of query.
### API
The API is available at https://confetti-app.dev/graphql ([IDE](https://confetti-app.dev/playground)).
You can query the list of conferences with `conferences.id` and chose what conference to query by
passing a `"conference"` HTTP header