Bring! is a modern, feature-rich shopping list application built with Kotlin Multiplatform (KMP) and Compose Multiplatform (CMP). It allows users to create, manage, and share shopping lists across multiple platforms with a seamless, native-like experience.
Web version is publicly available at https://bring.procyk.in.
If you like the project, consider supporting it by leaving ⭐.
- ✅ Create and manage shopping lists
- ✅ Import shopping lists data from external websites
- ✅ Generate shopping lists with the help of AI
- ✅ Mark items as favorites for quick access
- ✅ Real-time synchronization across devices
- ✅ Customizable settings
- ✅ Beautiful, responsive UI
- Kotlin Multiplatform - Share code across platforms
- Compose Multiplatform - UI framework for all platforms
- Ktor Client - HTTP client for API communication
- KStore - Cross-platform storage solution
- Arrow - Functional programming library
- Kotlinx Serialization - JSON/CBOR serialization
- Kotlinx Coroutines - Asynchronous programming
- Kotlinx DateTime - Cross-platform date/time handling
- Kotlinx RPC - Type-safe client-server communication
- Ktor Server - Asynchronous web framework
- Exposed - SQL framework for database access
- PostgreSQL - Relational database
- GraalVM - Native compilation for improved performance
- Koin - Dependency injection
- Kotlinx RPC - Type-safe client-server communication
The client application supports:
- 📱 Android
- 🍎 iOS (requires macOS for building)
- 🖥️ Desktop (Windows, macOS, Linux via JVM)
- 🌐 Web (via WebAssembly and JavaScript)
bring
├─ composeApp # Client application code
│ └─ src
│ ├─ androidMain # Android-specific code
│ ├─ commonMain # Shared client code
│ ├─ iosMain # iOS-specific code
│ ├─ jvmMain # Desktop-specific code
│ └─ webMain # Web-specific code
├─ server # Server application code
│ └─ src
│ ├─ main # Server implementation
│ └─ test # Server integration tests
├─ shared # Shared code between client and server
│ └─ src
│ └─ commonMain # Data models, API definitions
└─ shared-client # Client-specific shared code
└─ src
├─ commonMain # API clients, network communication
└─ ... # Platform-specific code
- JDK 21 or higher
- Docker and Docker Compose (for running the server)
- Android Studio or IntelliJ IDEA (for development)
- Xcode (for iOS development, macOS only)
This project is licensed under the MIT License - see the LICENSE file for details.
Maciej Procyk




