Skip to content

arsfeld/spillway

Repository files navigation

Spillway

A modern, cross-platform RSS/Atom feed reader built with Rust and Dioxus. Inspired by yarr, rebuilt for the future.

Spillway Screenshot

Features

  • 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.)

Feed Management

  • Subscribe to RSS and Atom feeds
  • Organize feeds into folders
  • OPML import/export
  • Feed auto-discovery from URLs

Reading Experience

  • Mark as read/unread/starred
  • Keyboard navigation (vim-inspired)
  • Search across all articles
  • Light/dark theme support

Sync

  • Built-in sync server (no third-party dependency)
  • Works standalone or connected
  • Conflict resolution via vector clocks

Quick Start

Using Docker (recommended)

# Start development environment
./dx compose up -d

# App available at http://localhost:9090

# View logs
./dx compose logs -f

# Stop
./dx compose down

Local Development

Requires Dioxus CLI:

# Development with hot reload
dx serve --features server

# Build for release
dx build --release --features web,server

Tech Stack

  • 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

Project Structure

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

License

MIT

About

A modern, cross-platform RSS/Atom feed reader built with Rust and Dioxus

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published