Skip to content

heroheman/rssr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

255 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rssr.

a web-based frontend for miniflux

rssr.

A modern Miniflux RSS reader built with Nuxt 4, Tailwind CSS, and Nuxt UI. Designed as a client-only, offline-first PWA.

→ Live Demo: rssr.florenz.dev

Screenshots

Desktop

The three-column layout — sidebar, entry list, and reader — in light and dark themes.

Reader (light) Reader (dark)
Reader, light theme Reader, dark theme
Feed settings App settings
Feed edit modal Settings

Themes

Six color schemes — reading environments, not brand variants. Default is shown above (light and dark); the five reading tints:

Sepia Ocean Forest
Sepia theme Ocean theme Forest theme
Solarized Gruvbox
Solarized theme Gruvbox theme

Mobile

Entry list Sidebar Reader Settings
Mobile entry list Mobile sidebar Mobile reader Mobile settings

Features

  • Full Miniflux API v1 integration — token or basic auth
  • Offline-first caching via IndexedDB + Workbox service worker
  • Installable PWA with update prompts and offline status indicator
  • Feed discovery from any website URL
  • Three-column layout: sidebar, entry list, and reader
  • Reader view with fetch-original-content and typography controls
  • Mark-as-read on scroll with configurable thresholds
  • Search modal and keyboard shortcuts
  • i18n with English and German translations
  • Light, dark, and system themes
  • Optimistic updates for read/star toggles
  • [BETA] Magazine view with grid layout

Tech stack

Layer Library
Framework Nuxt 4
UI components Nuxt UI 3
Styling Tailwind CSS v4
Icons Lucide via Iconify
State Pinia
Offline storage idb (IndexedDB)
PWA @vite-pwa/nuxt
i18n @nuxtjs/i18n

Getting started

Prerequisites

  • Node.js 18+
  • pnpm (recommended) or npm
  • A running Miniflux instance

Setup

  1. Clone and install
git clone <repository-url>
cd rssr
pnpm install
  1. Optional environment configuration
cp .env.example .env

Set a default server URL:

NUXT_PUBLIC_DEFAULT_SERVER_URL=https://miniflux.example.com
  1. Start the dev server
pnpm dev
  1. Open the app

Visit http://localhost:3000

Usage

Sign in

  1. Enter your Miniflux server URL
  2. Choose token or basic auth
  3. Sign in

Navigation

  • Left column: categories and feeds
  • Middle column: entry list
  • Right column: reader

Common actions

  • Refresh feeds from the sidebar controls
  • Mark entries as read by scrolling or using actions
  • Toggle star status from the entry header
  • Open settings from the sidebar footer
  • Press ? to view keyboard shortcuts

Settings

rssr exposes granular settings for:

  • Language and pagination
  • Sort order and list density
  • Sync interval and offline behavior
  • Theme, fonts, and reader layout
  • Mark-as-read thresholds and animations

Project structure

rssr/
├── app/
│   └── app.vue
├── assets/
│   └── css/
│       └── main.css
├── components/
│   ├── FeedSidebar.vue
│   ├── EntryList.vue
│   └── EntryReader.vue
├── i18n/
│   └── locales/
│       ├── de.json
│       └── en.json
├── pages/
│   ├── index.vue
│   ├── login.vue
│   └── settings.vue
├── plugins/
│   ├── auth.client.ts
│   ├── i18n.client.ts
│   └── settings.client.ts
├── public/
│   ├── manifest.json
│   └── icon-512.svg
├── stores/
│   ├── auth.ts
│   ├── categories.ts
│   ├── entries.ts
│   ├── feeds.ts
│   └── settings.ts
├── types/
│   └── miniflux.ts
├── utils/
│   ├── indexeddb.ts
│   └── miniflux-client.ts
├── nuxt.config.ts
├── package.json
└── tailwind.config.js

Scripts

pnpm dev
pnpm build
pnpm preview
pnpm generate

Deployment

Static hosting

pnpm generate

Deploy the contents of .output/public.

Preview a production build

pnpm build
pnpm preview

PWA features require HTTPS (localhost is fine for development).

Miniflux API

License

MIT License. See LICENSE for details.

Credits