{"id":13580995,"url":"https://github.com/osmoscraft/osmosfeed","last_synced_at":"2025-05-15T05:07:46.704Z","repository":{"id":37028942,"uuid":"312859305","full_name":"osmoscraft/osmosfeed","owner":"osmoscraft","description":"Turn GitHub into an RSS reader","archived":false,"fork":false,"pushed_at":"2023-10-11T06:12:01.000Z","size":2707,"stargazers_count":958,"open_issues_count":2,"forks_count":66,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-14T08:11:31.261Z","etag":null,"topics":["feed","feedbin","feedly","github","github-actions","github-page","javascript","miniflux","reader","rss","rss-reader","self-hosted","typescript"],"latest_commit_sha":null,"homepage":"https://osmoscraft.org","language":"TypeScript","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/osmoscraft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-11-14T16:49:01.000Z","updated_at":"2025-04-06T06:34:39.000Z","dependencies_parsed_at":"2023-10-11T08:15:50.103Z","dependency_job_id":null,"html_url":"https://github.com/osmoscraft/osmosfeed","commit_stats":{"total_commits":338,"total_committers":9,"mean_commits":37.55555555555556,"dds":"0.46153846153846156","last_synced_commit":"bb0507f7cfc5e360f1064d922c04eebf2d757394"},"previous_names":["platojar/system-zero"],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmoscraft%2Fosmosfeed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmoscraft%2Fosmosfeed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmoscraft%2Fosmosfeed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmoscraft%2Fosmosfeed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osmoscraft","download_url":"https://codeload.github.com/osmoscraft/osmosfeed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276447,"owners_count":22043867,"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","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":["feed","feedbin","feedly","github","github-actions","github-page","javascript","miniflux","reader","rss","rss-reader","self-hosted","typescript"],"created_at":"2024-08-01T15:01:57.089Z","updated_at":"2025-05-15T05:07:41.694Z","avatar_url":"https://github.com/osmoscraft.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","typescript","javascript"],"sub_categories":[],"readme":"[![image](./docs/media/osmosfeed-square-badge.svg)](#get-started)\n\n[中文](./README_zh.md)\n\n# osmos::feed\n\nAn RSS reader running entirely from your GitHub repo.\n\n- Free hosting on [GitHub Pages](https://pages.github.com/).\n- No need for backend. Content updates via [GitHub Actions](https://github.com/features/actions).\n- Customizable layouts and styles via templating and theming API. Just bring your HTML and CSS.\n- Free and open source. No ads. No third party tracking.\n\nWant a host-free alternative? Check out the sister project: [Fjord](https://github.com/osmoscraft/fjord).\n\n## Demos\n\n[![screely-1644817299264](https://user-images.githubusercontent.com/1895289/153806639-4b40197e-4d78-484f-9f7d-39b78473d63c.png)](https://osmoscraft.github.io/osmosfeed-demo/)\n\n### More examples\n\n- 💻 [Default template + Gruvbox dark](https://osmoscraft.github.io/osmosfeed-demo/) | [View source](https://github.com/osmoscraft/osmosfeed-demo)\n- 😎 [Default template + Solarized dark](https://osmoscraft.github.io/osmosfeed-examples/default-solarized-dark/)\n- ☀ [Default template + Solarized light](https://osmoscraft.github.io/osmosfeed-examples/default-solarized-light/)\n- 🔨 [Unstyled template](https://osmoscraft.github.io/osmosfeed-examples/articles-unstyled/) for building from scratch.\n- 📺 [YouTube feed template + Material dark](https://osmoscraft.github.io/osmosfeed-examples/youtube-dark/)\n- 🎧 [Unstyled template for building a podcast feed](https://osmoscraft.github.io/osmosfeed-examples/podcast-unstyled/)\n\nBrowse all [sources and more examples](https://github.com/osmoscraft/osmosfeed-examples)\n\n## Get started\n\n### Create a repository\n\n1. Open [Create a new repository from osmosfeed-template](https://github.com/osmoscraft/osmosfeed-template/generate).\n2. Set visibility to \"Public\".  \n   ![image](https://user-images.githubusercontent.com/1895289/118917672-3d938900-b8e6-11eb-892c-6bb9203c7419.png)\n3. Click \"Create repository from template\" button.\n\n### Turn on GitHub Pages\n\n1. In the repository you just created, navigate to **Settings** tab \u003e **Pages** section.\n2. In **Source** option, select `gh-pages`, click \"Save\" button. If `gh-pages` doesn't exist, wait for a couple of seconds and refresh the page. It will eventually show up.  \n   ![image](https://user-images.githubusercontent.com/1895289/114324508-3dca8880-9adf-11eb-98c9-0a0779f5fd7a.png)\n\n3. Refresh the page until it shows `Your site is published at https://\u003cgithub_username\u003e.github.io/\u003crepo\u003e`. This may take up to a minute.  \n   ![image](https://user-images.githubusercontent.com/1895289/114324153-75383580-9add-11eb-81a6-186cb18d0851.png)\n\n### Customize the feed\n\n1. In the repository root, open `osmosfeed.yaml` file, click the \"Pencil (Edit this file)\" button to edit.\n2. Remove `# ` to uncommend the `cacheUrl` property, replace `\u003cgithub_username\u003e` with your GitHub username, and replace `\u003crepo\u003e` with your GitHub repo name.\n3. In the sources, update the items to the sources you want to follow. The final content of the file should look similar to this:\n\n   ```yaml\n   cacheUrl: https://\u003cgithub_username\u003e.github.io/\u003crepo\u003e/cache.json\n   sources:\n     - href: https://my-rss-source-1/feed/\n     - href: https://my-rss-source-2/rss/\n     - href: https://my-rss-source-3/feed\n     - href: https://my-rss-source-4/news/rss\n     - href: https://my-rss-source-5/rss/\n   ```\n\n4. Scroll to the bottom of the page, click \"Commit changes\" button.\n5. Once the rebuild finishes, your feed will be available at `https://\u003cgithub_username\u003e.github.io/\u003crepo\u003e`.\n\n## Guides and references\n\n- [Customization guide](./docs/customization-guide.md)\n  - Changing theme\n  - Changing template\n  - Add inline HTML, CSS, JavaScript\n  - Add static files\n- [Configuration reference](./docs/osmosfeed-yaml-reference.md)\n- [Headless usage guide](./docs/headless-usage-guide.md)\n\n## To contribute\n\n- [How to contribute](./CONTRIBUTING.md)\n- [Developer guide](./docs/developer-guide.md)\n\n## FAQ\n\n### Can I update the content more frequently?\n\n\u003e Yes, you can make it as frequent as you want. In the `.github/workflows/update-feed.yaml` file, change the [cron schedule](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#schedule). But be aware that there is a [limit](\u003c(https://docs.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-actions)\u003e) to the free tier of GitHub Actions. My rough estimate shows that even with hourly update, you should still have plenty of unused time. You can monitor spending on [Billing \u0026 plans page in Account settings](https://github.com/settings/billing).\n\n### Can I make the site private so only I can see it?\n\n\u003e It is not possible with GitHub Pages. However, if you move the site to a different hosting service, you should be able to set up authorization on the host level. For example, if you [deploy to Netlify](./docs/how-to-deploy-to-other-hosts.md#netlify), there is a paid plan for [password protection](https://docs.netlify.com/visitor-access/password-protection/).\n\n### Do I have to type `index.html` at the end of the URL?\n\n\u003e No. There is a known issue with GitHub, so you might have to type it until it starts to work. See [discussion from GitHub Community](https://github.community/t/my-github-page-doesnt-redirect-to-index-html/10367/24) and [some solutions from Stack Overflow](https://stackoverflow.com/questions/45362628/github-pages-site-not-detecting-index-html)\n\n### How to trigger a manual site update?\n\n\u003e You can make some changes to the `osmosfeed.yaml` file to trigger an update. For example, add an empty comment like this `# ` on a new line.\n\n### How to reset cache?\n\n\u003e You can browse to the `gh-pages` branch on GitHub at `https://github.com/\u003cowner\u003e/\u003crepo\u003e/tree/gh-pages`. Manually delete the `cache.json` file. Then trigger a manual site update.\n\n## Ecosystem\n\n## Ecosystem\n\nBrowse other projects from the [OsmosCraft](https://osmoscraft.org/) ecosystem. \n\n- Read the web with [Fjord](https://github.com/osmoscraft/fjord)\n- Manage bookmarks with [Memo](https://github.com/osmoscraft/osmosmemo)\n- Take notes with [Tundra](https://github.com/osmoscraft/tundra)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosmoscraft%2Fosmosfeed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosmoscraft%2Fosmosfeed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosmoscraft%2Fosmosfeed/lists"}