Crystal RSS is a minimalist newsfeed reader.
The features are limited by intention to be able to concentrate on what matters: reading the news.
Any RSS feed can be added and article summaries are then being fetched and displayed on the dashboard automatically.
The feed reader is optimized for usage on smartphones.
Version 3.x is a complete rewrite of the codebase with the use of Inertia.js, so expect breaking changes. I tried to keep the database structure the same as in version 2.x. Please note that some DB table fields are no longer used, but you should be able to just upgrade to version 3.x without having to remigrating the whole database.
- minimum PHP version: 8.1
- based on Laravel 10
- no API (maybe I will bring it back in the future)
- download the latest release: https://github.com/Kaishiyoku/Crystal-RSS/releases/latest
- run
composer install --no-dev --no-scripts
- copy the .env.example file and fill in the necessary values:
@php -r \"file_exists('.env') || copy('.env.example', '.env');\"
- run
php artisan key:generate
- run
php artisan migrate
- run
npm install && npm run prod
RSS_CRAWLER_RETRY_COUNT=5
determines how many retries should be made if the RSS crawler fails for specific reasonsFEED_ITEMS_PER_PAGE=15
the number of feed items which should be displayed per pageMONTHS_AFTER_PRUNING_FEED_ITEMS=2
the number of months after read feed items should be deletedCONTACT_EMAIL
is being displayed on the welcome page; leave empty if you don't want to display the contact us linkGITHUB_URL
is being displayed on the welcome page; leave empty if you don't want to display the GitHub link
- manage feeds and categorize them
- a feed discovery tool helps finding the feed URL for a given website (blogs, online newspapers etc.)
- the feed discovery tool automatically searches for the website's favicon
- the dashboard shows a list of newly fetched articles in chronological order
- you can mark articles as read
- read articles are being deleted automatically after a while
- the website is fully responsive and mobile-friendly
The old source code is still available at https://github.com/Kaishiyoku/Crystal-RSS. The repo has been archived though. The old Crystal RSS was too feature-rich already although I originally wanted it to be a minimalist newsfeed reader with an enjoyable user experience. Both premises weren't followed anymore by packing more and more features in it while not giving any more benefits beside some interesting insights (e.g. statistics). The old codebase ran pretty smoothly but fetching and saving new articles was slow because of fetching so much data. Back then the full article text has been fetched for the search feature.
But why should I search for old articles which I either already read or added to a read it later list? There are much better ways of saving articles for the future.
Same goes for the favorite and voting features. I planned to build some kind of algorithm on top of it but for what reason? If I'm interested in a certain topic I mainly filter by feed manually anyway. Crystal RSS isn't a smart replacement for the Google feed for example. It is a feed reader and optimally you want to read all articles or at least mark those as read you don't want to read. There is also another benefit of this approach: It gives some good feelings if you mark your last new articles as read and your dashboard is empty. You can then come back anytime looking for new articles.