{"id":29698502,"url":"https://github.com/avan1235/bring","last_synced_at":"2026-05-30T22:00:46.320Z","repository":{"id":294758940,"uuid":"945822409","full_name":"avan1235/bring","owner":"avan1235","description":"Shopping list app with live updates, available on all platforms thanks to Kotlin Multiplatform","archived":false,"fork":false,"pushed_at":"2026-05-30T20:38:09.000Z","size":22301,"stargazers_count":19,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-30T21:11:36.363Z","etag":null,"topics":["android","compose-multiplatform","desktop","ios","kotlin-multiplatform","kotlinx-rpc","ktor-server","shopping-list-app","web"],"latest_commit_sha":null,"homepage":"https://bring.procyk.in","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avan1235.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-10T07:20:15.000Z","updated_at":"2026-05-30T20:38:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"5e10c03a-75c6-42ac-a445-fb73b940d6d8","html_url":"https://github.com/avan1235/bring","commit_stats":null,"previous_names":["avan1235/bring"],"tags_count":106,"template":false,"template_full_name":null,"purl":"pkg:github/avan1235/bring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avan1235%2Fbring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avan1235%2Fbring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avan1235%2Fbring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avan1235%2Fbring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avan1235","download_url":"https://codeload.github.com/avan1235/bring/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avan1235%2Fbring/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33711018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","compose-multiplatform","desktop","ios","kotlin-multiplatform","kotlinx-rpc","ktor-server","shopping-list-app","web"],"created_at":"2025-07-23T10:08:18.899Z","updated_at":"2026-05-30T22:00:46.307Z","avatar_url":"https://github.com/avan1235.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛒 Bring! - A Multiplatform Shopping List App\n\n[![Platforms](https://img.shields.io/badge/web-WebAssembly-blue)](https://bring.procyk.in)\n[![Platforms](https://img.shields.io/badge/mobile-Android%20%7C%20iOS-blue)](https://github.com/avan1235/bring/releases/latest)\n[![Platforms](https://img.shields.io/badge/desktop-Windows%20%7C%20macOS%20%7C%20Linux-blue)](https://github.com/avan1235/bring/releases/latest)\n\n[![Build](https://img.shields.io/github/actions/workflow/status/avan1235/bring/client.yml?label=Build\u0026color=green)](https://github.com/avan1235/bring/actions/workflows/client.yml)\n[![Latest Release](https://img.shields.io/github/v/release/avan1235/bring?label=Release\u0026color=green)](https://github.com/avan1235/bring/releases/latest)\n[![Google Play](https://img.shields.io/endpoint?color=green\u0026logo=google-play\u0026logoColor=green\u0026url=https%3A%2F%2Fplay.cuzi.workers.dev%2Fplay%3Fi%3Din.procyk.bring%26l%3DGoogle%2520Play%26m%3D%24version)](https://play.google.com/store/apps/details?id=in.procyk.bring)\n[![Docker](https://img.shields.io/docker/v/avan1235/bring?label=Docker%20Hub\u0026color=green)](https://hub.docker.com/repository/docker/avan1235/bring/tags?ordering=last_updated)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-red.svg)](./LICENSE.md)\n[![GitHub Repo stars](https://img.shields.io/github/stars/avan1235/bring?style=social)](https://github.com/avan1235/bring/stargazers)\n[![Fork Mini Games](https://img.shields.io/github/forks/avan1235/bring?logo=github\u0026style=social)](https://github.com/avan1235/bring/fork)\n\n## 📱 Overview\n\n\u003cdiv style=\"display: flex; justify-content: center; flex-wrap: nowrap;\"\u003e\n  \u003cimg src=\"composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp\" style=\"width: 32%;\"\u003e\n\u003c/div\u003e\n\nBring! 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.\n\nWeb version is publicly available at https://bring.procyk.in.\n\nIf you like the project, consider supporting it by leaving ⭐.\n\n\u003cdiv style=\"display: flex; justify-content: center; flex-wrap: nowrap;\"\u003e\n  \u003cimg src=\"composeApp/screenshots/create-list-screen-custom-name.png\" style=\"width: 32%;\" /\u003e\n  \u003cimg src=\"composeApp/screenshots/create-list-screen-join-list.png\" style=\"width: 32%;\" /\u003e\n  \u003cimg src=\"composeApp/screenshots/favorites-screen-collections.png\" style=\"width: 32%;\" /\u003e\n\u003c/div\u003e\n\u003cdiv style=\"display: flex; justify-content: center; flex-wrap: nowrap;\"\u003e\n  \u003cimg src=\"composeApp/screenshots/loyalty-cards-screen.png\" style=\"width: 32%;\" /\u003e\n  \u003cimg src=\"composeApp/screenshots/edit-list-screen-options.png\" style=\"width: 32%;\" /\u003e\n  \u003cimg src=\"composeApp/screenshots/settings-screen-options.png\" style=\"width: 32%;\" /\u003e\n\u003c/div\u003e\n\n\n## 🚀 Features\n\n- ✅ Create and manage shopping lists\n- ✅ Import shopping lists data from external websites\n- ✅ Generate shopping lists with the help of AI\n- ✅ Mark items as favorites for quick access\n- ✅ Real-time synchronization across devices\n- ✅ Collect all loyalty cards in single place\n- ✅ Customizable settings\n- ✅ Beautiful, responsive UI\n\n## 🛠️ Technology Stack\n\n### Client\n- **Kotlin Multiplatform** - Share code across platforms\n- **Compose Multiplatform** - UI framework for all platforms\n- **Ktor Client** - HTTP client for API communication\n- **KStore** - Cross-platform storage solution\n- **Arrow** - Functional programming library\n- **Kotlinx Serialization** - JSON/CBOR serialization\n- **Kotlinx Coroutines** - Asynchronous programming\n- **Kotlinx DateTime** - Cross-platform date/time handling\n- **Kotlinx RPC** - Type-safe client-server communication\n\n### Server\n- **Ktor Server** - Asynchronous web framework\n- **Exposed** - SQL framework for database access\n- **PostgreSQL** - Relational database\n- **GraalVM** - Native compilation for improved performance\n- **Koin** - Dependency injection\n- **Kotlinx RPC** - Type-safe client-server communication\n\n## 💻 Supported Platforms\n\nThe client application supports:\n- 📱 Android \u003ca href=\"https://play.google.com/store/apps/details?id=in.procyk.bring\"\u003e\u003cimg alt=\"Get it on Google Play\" height=\"32\" src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\"/\u003e\u003c/a\u003e\n- 🍎 iOS (requires macOS for building)\n- 🖥️ Desktop (Windows, macOS, Linux via JVM)\n- 🌐 Web (via WebAssembly and JavaScript)\n\n## 🏗️ Project Structure\n\n```\nbring\n├─ composeApp           # Client application code\n│  └─ src\n│     ├─ androidMain    # Android-specific code\n│     ├─ commonMain     # Shared client code\n│     ├─ iosMain        # iOS-specific code\n│     ├─ jvmMain        # Desktop-specific code\n│     └─ webMain        # Web-specific code\n├─ server               # Server application code\n│  └─ src\n│     ├─ main           # Server implementation\n│     └─ test           # Server integration tests\n├─ shared               # Shared code between client and server\n│  └─ src\n│     └─ commonMain     # Data models, API definitions\n└─ shared-client        # Client-specific shared code\n   └─ src\n      ├─ commonMain     # API clients, network communication\n      └─ ...            # Platform-specific code\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n- JDK 21 or higher\n- Docker and Docker Compose (for running the server)\n- Android Studio or IntelliJ IDEA (for development)\n- Xcode (for iOS development, macOS only)\n\n## 📄 License\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 👨‍💻 Author\nMaciej Procyk","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favan1235%2Fbring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favan1235%2Fbring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favan1235%2Fbring/lists"}