A modern, cross-platform RSS/Atom feed reader built with Rust and Dioxus. Inspired by yarr, rebuilt for the future.
- Cross-platform: Web, desktop, and mobile from a single Rust codebase
- Three-pane layout: Folders → feeds → articles for efficient navigation
- Offline-first: Local SQLite database with optional sync
- Self-hosted: Single binary deployment, minimal resource footprint
- Fever API compatible: Works with existing RSS clients (Reeder, Unread, etc.)
- Subscribe to RSS and Atom feeds
- Organize feeds into folders
- OPML import/export
- Feed auto-discovery from URLs
- Mark as read/unread/starred
- Keyboard navigation (vim-inspired)
- Search across all articles
- Light/dark theme support
- Built-in sync server (no third-party dependency)
- Works standalone or connected
- Conflict resolution via vector clocks
# Start development environment
./dx compose up -d
# App available at http://localhost:9090
# View logs
./dx compose logs -f
# Stop
./dx compose downRequires Dioxus CLI:
# Development with hot reload
dx serve --features server
# Build for release
dx build --release --features web,server- Dioxus 0.7: Cross-platform UI framework with subsecond hot-patching
- DaisyUI: Component library with Tailwind CSS
- SQLite: Embedded database (PostgreSQL optional)
- Axum: HTTP server with WebSocket support
src/
├── app.rs # Root component with router
├── components/ # UI components (Sidebar, ArticleList, ArticleView)
├── pages/ # Route pages (Home, Settings)
├── models/ # Data models (Folder, Feed, Article)
├── db/ # Database layer (server-only)
├── feed/ # Feed parsing and fetching (server-only)
├── server/ # Server functions and Fever API (server-only)
└── sync/ # Sync protocol with vector clocks
MIT
