{"id":26630306,"url":"https://github.com/lwindolf/rss-finder","last_synced_at":"2026-07-14T15:36:38.531Z","repository":{"id":282889219,"uuid":"949981054","full_name":"lwindolf/rss-finder","owner":"lwindolf","description":"Easily discover RSS feeds","archived":false,"fork":false,"pushed_at":"2025-09-24T00:37:28.000Z","size":552,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-24T01:12:39.087Z","etag":null,"topics":["atom","feed-reader","rss"],"latest_commit_sha":null,"homepage":"https://lwindolf.github.io/rss-finder/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lwindolf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-17T12:51:53.000Z","updated_at":"2025-09-24T00:37:31.000Z","dependencies_parsed_at":"2025-03-17T14:25:45.307Z","dependency_job_id":"7205e262-dcd8-4704-9f53-98c41c7151da","html_url":"https://github.com/lwindolf/rss-finder","commit_stats":null,"previous_names":["lwindolf/rss-finder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lwindolf/rss-finder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwindolf%2Frss-finder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwindolf%2Frss-finder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwindolf%2Frss-finder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwindolf%2Frss-finder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lwindolf","download_url":"https://codeload.github.com/lwindolf/rss-finder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwindolf%2Frss-finder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008289,"owners_count":26084431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom","feed-reader","rss"],"created_at":"2025-03-24T13:18:11.192Z","updated_at":"2026-07-14T15:36:38.519Z","avatar_url":"https://github.com/lwindolf.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSS Finder\n\nA simple web component finding RSS feeds for different sources that can be embedded in feed readers.\n\nIntended embedded use cases:\n\n| Use Case                              | Embed Type    | Used by  |\n|---------------------------------------|---------------|----------|\n| Progressive web app RSS reader        | web component | lzone.de |\n| Native RSS app with browser widget    | website       |  |\n| Native RSS app without browser widget | launch in default browser | Liferea |\n \n## Embed as website\n\nIn a native app open a HTML widget and launch the URL\n\n    https://lwindolf.github.io/rss-finder?show-title=false\n    \n\nIf possible do disable CORS, if it is not possible enable the CORS proxy by adding\n`use-cors-proxy=true` to the query string. \n\nIf your app does not `feed:` as protocol handler set a `scheme` value in the query string.\n\nIf your app does not have a browser widget you can still provide a menu option\nlike \"Discover Feeds\" and open the the RSS Finder URL using Linux `xdg-open` or the \ncorresponding GUI toolkit method to launch RSS Finder in the users default browser.\nYour app will receive the subscribed feed URLs via the defined URI scheme.\n\n## Embed as a web component\n\n1. `git submodule init` and `git submodule update`\n1. `npm run build`\n2. Copy the `www` directory to your code base as `rss-finder`\n3. Include the sources \n\n       \u003cscript src=\"rss-finder/js/vendor/handlebars.min.js\"\u003e\u003c/script\u003e\n       \u003cscript src=\"rss-finder/js/vendor/purify.min.js\"\u003e\u003c/script\u003e\n       \u003cscript type=\"module\" src=\"rss-finder/js/widget.js\"\u003e\u003c/script\u003e\n\n4. Use the custom HTML element in your web app.\n\n       \u003cx-rss-finder icons=\"rss-finder/icons\" subscribe-method=\"event\" use-cors-proxy=\"true\"\u003e\n\n5. Register an subscribe event handler\n\n       document.querySelector('x-rss-finder').addEventListener('rss-finder-subscribe', (ev) =\u003e {\n          alert(`Subscribing to feed URL ${ev.detail.url}`);\n       });\n\nNote: due to \"web+\" custom protocol handlers not working together with CSP and CORS\nwhen used as a web component `subscribe-method` needs to be `event`.\n\n## Configuration Parameters\n\nConfiguration parameters are to be passed by query string for iframe embedding or by \nby attribute when including as web component. The following parameters are supported:\n\n| Parameter         | Description                                                     | Default          |\n|-------------------|-----------------------------------------------------------------|------------------|\n| show-title        | Whether to add a `\u003ch1\u003e` title                                   | `true`           |\n| scheme            | Which URI scheme to trigger for subscriptions                   | `feed:`          |\n| use-cors-proxy    | Whether to retry using a CORS proxy when a network error occurs | `false`          |\n| cors-proxy        | URL of a cors proxy to use                                      | `https://corsproxy.io/?url=` |\n| subscribe-method  | How to subscribe (via `location` using the define schema or via `event`) | `location` |\n| base-path         | Base URL for fetching data + icons                              | `https://lwindolf.github.io/rss-finder` |\n\n## Privacy considerations\n\n### CORS proxy\n\nPer default `use-cors-proxy` is disabled, so everything happens at the user side. This\nis ok for e.g. Electron apps or native apps with embedded browser widgets which can \ndisable CORS internally.\n\nIf you want to use RSS finder in a pure web app the browser CORS settings will disallow\naccess to almost all feeds and you will need to enable the cors-proxy. In this case ensure\nyour users know about the privacy impact (e.g. Cloudflare hosting corsproxy.io potentially \nknowing about the feeds they subscribe to). Note that the Cloudflare proxy can only be used\nwith the github.io hosting and can be gone at any time.\n\n### Accessing 3rd party APIs\n\nSome subscriber access 3rd party APIs:\n\n- iTunes\n- Mastodon\n- BlueSky\n- Lemmy\n\nAny search will be exposed to those providers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwindolf%2Frss-finder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flwindolf%2Frss-finder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwindolf%2Frss-finder/lists"}