@osmoscraft/osmosfeed v1.15.1
osmos::feed
A web-based RSS reader running entirely from your GitHub repo.
- The feed is statically hosted as GitHub Pages. The content stays the same until the next build.
- The feed is rebuilt periodically by GitHub Actions, configured in .github/workflows/update-feed.yaml.
- During a rebuild, cache from the previous build is used, so only new content will be downloaded.
- The source of the content can be any RSS feed URL, configured in osmosfeed.yaml.
- The content fetching and static site generation is powered by a custom node.js script optimized for speed.
Demo
Get started
Create a repository
- Open Create a new repository from osmosfeed-template.
- Set visibility to "Public".
- Click "Create repository from template" button.
Turn on GitHub Pages
- In the repository you just created, navigate to Settings tab > Pages section.
In Source option, select
gh-pages
, click "Save" button. Ifgh-pages
doesn't exist, wait for a couple of seconds and refresh the page. It will eventually show up.Refresh the page until it shows
Your site is published at https://GITHUB_USERNAME.github.io/REPO_NAME
. This may take up to a minute.
Customize the feed
- In the repository root, open
osmosfeed.yaml
file, click the "Pencil (Edit this file)" button to edit. - Remove
#
to uncommend thecacheUrl
property, replaceGITHUB_USERNAME
with your GitHub username, and replaceREPO_NAME
with your GitHub username. In the sources, update the items to the sources you want to follow. The final content of the file should look similar to this:
cacheUrl: https://REPLACED_GITHUB_USERNAME.github.io/REPLACED_REPO_NAME/cache.json sources: - href: https://my-rss-source-1/feed/ - href: https://my-rss-source-2/rss/ - href: https://my-rss-source-3/feed - href: https://my-rss-source-4/news/rss - href: https://my-rss-source-5/rss/
Scroll to the bottom of the page, click "Commit changes" button.
- Once the rebuild finishes, your feed will be available at
https://REPLACED_GITHUB_USERNAME.github.io/REPLACED_REPO_NAME
.
Next steps
- Read the developer guide
- (coming soon) How to customize refresh schedule
- (coming soon) How to deploy to other hosts
Contributions
My current focus is to bring the entire osmos::craft project online. Until then, I have no bandwidth for new feature requests or PRs. However, issues and bug reports are always welcome. I'll keep track of issues and address them once I have more time! Thank your for being patient.
FAQ
Can I update the content more frequently?
Yes, you can make it as frequent as you want. But be aware that there is a limit to the free tier of GitHub Actions. My rough estimate shows that even with hourly update, you should still have planty of unused time everyone. You can monitory spending on Billing & plans page in Account settings.
Can I make the site private so only I can see it?
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, there is a paid plan for password protection.
Do I have to type index.html
at the end of the URL?
No. But there is a known issue with GitHub. See discussion from GitHub Community and some solutions from Stack Overflow
How to trigger a manual site update?
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.
How to build the site without using cache?
You can comment out the cacheUrl
property in the osmosfeed.yaml
. Note that after the build, cache will still be created, except it won't contain any content from the previous cache.
Ecosystem
osmos::feed is part of the osmos::craft ecosystem. If you enjoy this tool, you might also like:
- osmos::memo: An in-browser bookmark manager optimized for tagging and retrieval speed.
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago