stringer-rss/stringer

Ruby

A self-hosted, anti-social RSS reader.

rssrss-readerrubyfeed-readerfeedjira
Sterne-Wachstum
Sterne
4.1k
Forks
391
Wochenwachstum
+1
Issues
24
1k2k3k4k
Jan. 2023März 2024Juni 2025Sept. 2026
ArtefakteRubyGems
README

Stringer

CircleCI Code Climate Coverage Status GitHub Sponsors

A self-hosted, anti-social RSS reader.

Stringer has no external dependencies, no social recommendations/sharing, and no fancy machine learning algorithms.

But it does have keyboard shortcuts and was made with love!

Installation

Stringer is a Ruby app based on Rails, PostgreSQL, Hotwire (Turbo and Stimulus) and GoodJob.

Deploy to Heroku

Stringer will run just fine on the Eco/Basic Heroku plans.

Instructions are provided for deploying to Heroku manually, to any Ruby compatible Linux-based VPS, to Docker and to OpenShift.

Niceties

Keyboard Shortcuts

You can access the keyboard shortcuts when using the app by hitting ?.

Using your own domain with Heroku

You can run Stringer at http://reader.yourdomain.com using a CNAME.

If you are on Heroku:

heroku domains:add reader.yourdomain.com

Go to your registrar and add a CNAME:

Record: CNAME
Name: reader
Target: your-heroku-instance.herokuapp.com

Wait a few minutes for changes to propagate.

Fever API

Stringer implements a clone of Fever's API so it can be used with any mobile client that supports Fever.

image

Use the following settings:

Server: {path-to-stringer}/fever (e.g. http://reader.example.com/fever)

Email: stringer (case-sensitive)
Password: {your-stringer-password}

Translations

Stringer has been translated to several other languages. Your language can be set with the LOCALE environment variable.

To set your locale on Heroku, run heroku config:set LOCALE=en.

If you would like to translate Stringer to your preferred language, please use LocaleApp.

Clean up old read stories on Heroku

You can clean up old stories by running: rake cleanup_old_stories

By default, this removes read stories that are more than 30 days old (that are not starred). You can either run this manually or add it as a scheduled task.

Development

Getting Started

You'll need the toolchain versions pinned in .tool-versions (Ruby, Node, PostgreSQL, and pnpm). With those installed, run:

bin/setup

This installs dependencies, prepares the database, and launches the development server. The application will be running on port 3000.

On subsequent runs you can start the server directly with bin/dev, which boots Puma alongside the esbuild watchers for JavaScript and CSS.

You can launch an interactive console (a la rails c) using rake console.

Tests and linting

Run the Ruby tests with bundle exec rspec. Run a single file or example with bundle exec rspec spec/path/to/file_spec.rb:LINE.

Run the JavaScript tests with pnpm test (Vitest). This also type-checks and runs ESLint first.

Other checks: bundle exec rubocop (Ruby lint), pnpm eslint (JS lint), pnpm stylelint (CSS lint), pnpm tscheck (type check), and bundle exec brakeman (security scan).

Acknowledgments

Most of the heavy-lifting is done by feedjira and feedbag.

General sexiness courtesy of Twitter Bootstrap and Flat UI.

ReenieBeanie Font Copyright © 2010 Typeco (james@typeco.com). Licensed under SIL Open Font License, 1.1.

Lato Font Copyright © 2010-2011 by tyPoland Lukasz Dziedzic (team@latofonts.com). Licensed under SIL Open Font License, 1.1.

Contact

If you have a question, feature idea, or are running into problems, our preferred method of contact is to open an issue on GitHub. This allows multiple people to weigh in, and we can keep everything in one place. Thanks!

Maintainers

Robert Fletcher boon.gl

Alumni

Matt Swanson (creator), mdswanson.com, @_swanson Victor Koronen, victor.koronen.se, @victorkoronen

Ähnliche Repositories
sansan0/TrendRadar

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

PythonPyPIGNU General Public License v3.0data-analysispython
trendradar.sandev.cc
62.1k24.9k
huginn/huginn

Create agents that monitor and act on your behalf. Your agents are standing by!

RubyRubyGemsMIT Licenseautomationnotifications
49.9k4.3k
DIYgod/RSSHub

🧡 Everything is RSSible

TypeScriptnpmGNU Affero General Public License v3.0rsstwitter
docs.rsshub.app
46.1k10.2k
RSSNext/Folo

🧡 Folo is the AI RSS Reader

TypeScriptnpmappGNU Affero General Public License v3.0readerrss
app.folo.is
38.9k2.1k
glanceapp/glance

A self-hosted dashboard that puts all your feeds in one place

GoGo ModulesGNU Affero General Public License v3.0dashboardhomepage
36.9k1.4k
dgtlmoon/changedetection.io

Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring—all for free or enjoy our SaaS plan!

PythonPyPIApache License 2.0website-monitorwebsite-monitoring
changedetection.io
33.7k2k
ArchiveBox/ArchiveBox

🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

PythonPyPIMIT Licensepocketwget
archivebox.io
28.3k1.6k
timqian/chinese-independent-blogs

中文独立博客列表

PythonPyPIawesomeMIT Licenserssblog
23.9k2.7k
Jackett/Jackett

API Support for your favorite torrent trackers

C#GNU General Public License v2.0torrenttorznab
16k1.6k
FreshRSS/FreshRSS

A free, self-hostable news aggregator…

PHPPackagistGNU Affero General Public License v3.0freshrssphp
freshrss.org
15.9k1.3k
Ranchero-Software/NetNewsWire

RSS reader for macOS and iOS.

SwiftappMIT Licensefeed-readerrss-reader
netnewswire.com
10.4k751
cooderl/wewe-rss

🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)

TypeScriptnpmappMIT Licenserssrsshub
9.7k1.8k