Twine: A multiplatform RSS reader built using Kotlin and Compose
2,401
stars
3,226
commits
Kotlin
primary language
Sep 7, 2026
updated
Twine is a modern cross-platform RSS reader app built using Kotlin and Compose Multiplatform. It features a nice user experience to browse through your feeds, with dynamic theming, changing app ambient color based on content.
The project follows a modular Kotlin Multiplatform structure:
androidApp: Android-specific application code and entry point.iosApp: iOS-specific application code (Swift/Xcode project).shared: Contains the core UI logic using Compose Multiplatform, ViewModels (using kotlin-inject), and shared presentation logic.core/: Modularized business logic.
base: Base utilities, common interfaces, and platform abstractions.data: Data layer containing repositories, local database (SQLDelight), and sync logic.model: Domain models used across the project.network: Network layer using Ktor for fetching feeds and parsing.resources/icons: Shared icon resources.For full list of dependencies used, please take a look at the catalog file.
You can just clone the repo and build it locally without requiring any changes.
Project requires JDK 21+, and based on the AGP version defined in libs.versions.toml file,
you can use appropriate Android Studio to import the project.
You can contribute bug fixes to the project via PRs, for anything else open an issue to start a conversation.
This project uses ktfmt, provided via the spotless gradle plugin, and the bundled project IntelliJ codestyle. Run
./gradlew spotlessApply to format the code before raising a PR.
You can help translate project on Crowdin. We use Compose resources for strings, you can read more about it here.
You can read the privacy policy here.
Kotlin
92.3%
JavaScript
4.9%
Swift
2.0%
Twine: A multiplatform RSS reader built using Kotlin and Compose
2,401
stars
3,226
commits
Kotlin
primary language
Sep 7, 2026
updated
Twine is a modern cross-platform RSS reader app built using Kotlin and Compose Multiplatform. It features a nice user experience to browse through your feeds, with dynamic theming, changing app ambient color based on content.
The project follows a modular Kotlin Multiplatform structure:
androidApp: Android-specific application code and entry point.iosApp: iOS-specific application code (Swift/Xcode project).shared: Contains the core UI logic using Compose Multiplatform, ViewModels (using kotlin-inject), and shared presentation logic.core/: Modularized business logic.
base: Base utilities, common interfaces, and platform abstractions.data: Data layer containing repositories, local database (SQLDelight), and sync logic.model: Domain models used across the project.network: Network layer using Ktor for fetching feeds and parsing.resources/icons: Shared icon resources.For full list of dependencies used, please take a look at the catalog file.
You can just clone the repo and build it locally without requiring any changes.
Project requires JDK 21+, and based on the AGP version defined in libs.versions.toml file,
you can use appropriate Android Studio to import the project.
You can contribute bug fixes to the project via PRs, for anything else open an issue to start a conversation.
This project uses ktfmt, provided via the spotless gradle plugin, and the bundled project IntelliJ codestyle. Run
./gradlew spotlessApply to format the code before raising a PR.
You can help translate project on Crowdin. We use Compose resources for strings, you can read more about it here.
You can read the privacy policy here.
Kotlin
92.3%
JavaScript
4.9%
Swift
2.0%