{"id":28628233,"url":"https://github.com/fgeller/feeder","last_synced_at":"2025-08-18T11:09:31.693Z","repository":{"id":50354399,"uuid":"268102638","full_name":"fgeller/feeder","owner":"fgeller","description":"atom and rss feeds via email 📫 ","archived":false,"fork":false,"pushed_at":"2025-04-05T09:13:53.000Z","size":169,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-12T10:11:47.842Z","etag":null,"topics":["atom-aggregator","email","feeds","golang","news-aggregator","rss-aggregator","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fgeller.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}},"created_at":"2020-05-30T15:04:43.000Z","updated_at":"2025-04-09T10:16:09.000Z","dependencies_parsed_at":"2024-06-19T06:15:58.298Z","dependency_job_id":"501c8649-3340-42c0-9eb5-649fbdc55b43","html_url":"https://github.com/fgeller/feeder","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/fgeller/feeder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fgeller%2Ffeeder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fgeller%2Ffeeder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fgeller%2Ffeeder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fgeller%2Ffeeder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fgeller","download_url":"https://codeload.github.com/fgeller/feeder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fgeller%2Ffeeder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270982194,"owners_count":24679447,"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-08-18T02:00:08.743Z","response_time":89,"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-aggregator","email","feeds","golang","news-aggregator","rss-aggregator","yaml"],"created_at":"2025-06-12T10:11:47.715Z","updated_at":"2025-08-18T11:09:31.671Z","avatar_url":"https://github.com/fgeller.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# feeder 📫 [![Continuous Integration](https://github.com/fgeller/feeder/actions/workflows/go.yml/badge.svg)](https://github.com/fgeller/feeder/actions/workflows/go.yml)\n\nAggregates news feed updates and sends them to your email inbox.\n\n- Supports Atom and RSS/RDF feeds.\n- Supports subscribing to feed URL directly, or scanning for a `link` tag at a given URL.\n- Uses Golang [html/template](https://golang.org/pkg/html/template/#pkg-overview) to customize the email body.\n- Update timestamps persisted to YAML file.\n- Optionally resolves relative URLs\n- Optionally uses Reddit bearer token to request RSS feeds\n\n## Usage\n\n- Install via `go install github.com/fgeller/feeder` or download a [release](https://github.com/fgeller/feeder/releases).\n- Create a [config file](https://github.com/fgeller/feeder#example-config), customizing email settings and file paths.\n- Add subscribed feeds either by:\n  - maintaing the [feeds config file](https://github.com/fgeller/feeder#example-feeds-config) manually, or\n  - using feeder via `feeder -subscribe https://example.com/blog/`\n- Run via `feeder` manually, or set up recurring execution, e.g. via `crontab -e`\n- `feeder -help` output:\n```\nUsage of feeder:\n\n  -config string\n        Path to config file (default $XDG_CONFIG_HOME/feeder/config.yml)\n  -subscribe string\n        URL to feed to subscribe to\n  -version\n        Print version information\n\nBy default feeder will try to download the configured feeds and send\nthe latest entries via email. If the subscribe flag is provided, \ninstead of downloading feeds, feeder tries to subscribe to the feed \nat the given URL and persists the augmented feeds config.\n```\n\n## Configuration\n\n- `feeds-file` is the list of feeds you are subscribed to.\n\n- `timestamp-file` is required to persist what updates have been seen.\n\n- `email-template-file` is an optional Golang [html/template](https://golang.org/pkg/html/template/#pkg-overview) to format the sent email.\n\n- `email` contains the configuration for sending emails. The `from` address will\n  also be the `to` address and the `smtp` object allows for standard smtp host\n  and auth configuration.\n\n- `max-entries-per-feed` is the maximum number of entries to send per feed.\n\n- `reddit` allows configuring `client-id` and `client-secret` so feeder can request and use a bearer token for Reddit RSS feeds.\n\n### Example Config\n\n```yaml\nfeeds-file: '/home/fgeller/.config/feeder/feeds.yml'\ntimestamp-file: '/home/fgeller/.config/feeder/timestamps.yml'\nemail-template-file: '/home/fgeller/.config/feeder/email.tmpl'\nreddit:\n  client-secret: some-secret-characters\n  client-id: some-id-characters\nemail:\n  from: example@gmail.com\n  smtp:\n    host: smtp.gmail.com\n    port: 587\n    user: example@gmail.com\n    pass: passwort\n```\n\n### Example Feeds Config\n\n```yaml\n- name: 'irreal'\n  url: https://irreal.org/blog/?feed=rss2\n- name: The Go Blog\n  url: https://blog.golang.org/blog/feed.atom\n```\n\n## Alternatives\n\n- [blogtrottr](https://blogtrottr.com)\n- [mailbrew](https://mailbrew.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffgeller%2Ffeeder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffgeller%2Ffeeder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffgeller%2Ffeeder/lists"}