A minimalist RSS reader built on intentional design principles.
In an age of algorithmic feeds and infinite doom-scrolling, the RSS reader is the last bastion of intentional consumption.
This project follows The Clarity Protocol - a design manifesto for modern RSS readers that prioritizes focus, usability, and respect for both content and users.
Read the full philosophy: DESIGN_GUIDELINES.md
- Kotlin Multiplatform - Cross-platform shared logic
- Compose Multiplatform - Modern declarative UI
- Room - Local database with SQLite
- Ktor - HTTP client for feed fetching
- jsoup - HTML parsing and sanitization
- Coroutines - Asynchronous operations
Early development, but fully functional - v0.1.0
Currently supporting desktop with Android planned.
- mise - Development environment manager
- Gradle (included via wrapper)
Install dependencies using mise:
mise installThis will automatically install Java 17 and other required tools based on .mise.toml.
Run the desktop application:
mise exec -- ./gradlew :desktop:runOr activate mise in your shell and run directly:
mise shell
./gradlew :desktop:runRun the full build and test suite (same as CI):
mise exec -- ./gradlew build testurssreader/
├── shared/ # Kotlin Multiplatform shared code
│ ├── domain/ # Business logic and entities
│ ├── data/ # Repositories and data sources
│ └── database/ # Room database definitions
└── desktop/ # Desktop UI application
└── ui/ # Compose Desktop interfaces
- Thumb-first navigation for mobile.
- Content-focused reading experience.
- Gesture-driven interactions (mobile).
- Aggressive offline caching.
- Zero-anxiety "Mark All Read" functionality.
To be determined.