https://github.com/lwindolf/rss-finder
Easily discover RSS feeds
https://github.com/lwindolf/rss-finder
atom feed-reader rss
Last synced: 15 days ago
JSON representation
Easily discover RSS feeds
- Host: GitHub
- URL: https://github.com/lwindolf/rss-finder
- Owner: lwindolf
- License: unlicense
- Created: 2025-03-17T12:51:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-24T00:37:28.000Z (10 months ago)
- Last Synced: 2025-09-24T01:12:39.087Z (10 months ago)
- Topics: atom, feed-reader, rss
- Language: JavaScript
- Homepage: https://lwindolf.github.io/rss-finder/
- Size: 539 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RSS Finder
A simple web component finding RSS feeds for different sources that can be embedded in feed readers.
Intended embedded use cases:
| Use Case | Embed Type | Used by |
|---------------------------------------|---------------|----------|
| Progressive web app RSS reader | web component | lzone.de |
| Native RSS app with browser widget | website | |
| Native RSS app without browser widget | launch in default browser | Liferea |
## Embed as website
In a native app open a HTML widget and launch the URL
https://lwindolf.github.io/rss-finder?show-title=false
If possible do disable CORS, if it is not possible enable the CORS proxy by adding
`use-cors-proxy=true` to the query string.
If your app does not `feed:` as protocol handler set a `scheme` value in the query string.
If your app does not have a browser widget you can still provide a menu option
like "Discover Feeds" and open the the RSS Finder URL using Linux `xdg-open` or the
corresponding GUI toolkit method to launch RSS Finder in the users default browser.
Your app will receive the subscribed feed URLs via the defined URI scheme.
## Embed as a web component
1. `git submodule init` and `git submodule update`
1. `npm run build`
2. Copy the `www` directory to your code base as `rss-finder`
3. Include the sources
4. Use the custom HTML element in your web app.
5. Register an subscribe event handler
document.querySelector('x-rss-finder').addEventListener('rss-finder-subscribe', (ev) => {
alert(`Subscribing to feed URL ${ev.detail.url}`);
});
Note: due to "web+" custom protocol handlers not working together with CSP and CORS
when used as a web component `subscribe-method` needs to be `event`.
## Configuration Parameters
Configuration parameters are to be passed by query string for iframe embedding or by
by attribute when including as web component. The following parameters are supported:
| Parameter | Description | Default |
|-------------------|-----------------------------------------------------------------|------------------|
| show-title | Whether to add a `
` title | `true` |
| scheme | Which URI scheme to trigger for subscriptions | `feed:` |
| use-cors-proxy | Whether to retry using a CORS proxy when a network error occurs | `false` |
| cors-proxy | URL of a cors proxy to use | `https://corsproxy.io/?url=` |
| subscribe-method | How to subscribe (via `location` using the define schema or via `event`) | `location` |
| base-path | Base URL for fetching data + icons | `https://lwindolf.github.io/rss-finder` |
## Privacy considerations
### CORS proxy
Per default `use-cors-proxy` is disabled, so everything happens at the user side. This
is ok for e.g. Electron apps or native apps with embedded browser widgets which can
disable CORS internally.
If you want to use RSS finder in a pure web app the browser CORS settings will disallow
access to almost all feeds and you will need to enable the cors-proxy. In this case ensure
your users know about the privacy impact (e.g. Cloudflare hosting corsproxy.io potentially
knowing about the feeds they subscribe to). Note that the Cloudflare proxy can only be used
with the github.io hosting and can be gone at any time.
### Accessing 3rd party APIs
Some subscriber access 3rd party APIs:
- iTunes
- Mastodon
- BlueSky
- Lemmy
Any search will be exposed to those providers.