Skip to content

FeedKeeper 0.18.0

Choose a tag to compare

@visualfusion visualfusion released this 08 Oct 18:17
· 91 commits to main since this release

FeedKeeper v0.18.0 gives a hosted service two more tools: a notice above the articles, and limits for an account without a plan (reading, exporting and deleting stay, adding and updating feeds are switched off, and the web app says so). Nothing changes for a self-hosted installation, and there is no database migration.

What's New in v0.18.0

Accounts without the sync feature

  • The API enforces it: Adding a feed, discovering feeds, importing OPML, refreshing one or all feeds and creating a folder answer 403 capability_not_available (with the manageUrl of the plan) for an account whose capabilities do not include sync. Reading, exporting and deleting feeds stay available.
  • No updates for them: A feed that only such accounts subscribe to is no longer fetched. As soon as one account with the feature subscribes to it, it is fetched as before.
  • The web app explains it: The buttons for adding, importing, refreshing (also pull to refresh) and creating a folder are switched off, a notice on the articles and feeds pages says why (instead of the welcome card for an account without feeds) and links to the plan when the server provides a manageUrl. Texts in English, German and Japanese.
  • Nothing changes by default: Without capabilities, which is what a self-hosted server sends, everything stays allowed. The native API and MCP already enforced the same feature map; now the web app and the poller follow it too.

Extension points for the web app

  • Notice above the articles (articlesNotice): A host can show one card above the list of articles, for example what a plan includes. It appears for accounts that already have feeds, and only after the person has closed the short tour of the app, so one card is shown at a time.
  • You decide when it is shown: An optional applies(user) function answers whether the notice is still to be shown. Closing it is up to the host's content.

Details: Extending the web app


Quick start with Docker

mkdir feedkeeper && cd feedkeeper
curl -fsSLO https://raw.githubusercontent.com/visualfusion/feedkeeper/main/compose.yaml
echo "SESSION_SECRET=$(openssl rand -hex 32)" > .env
docker compose up -d

Open http://localhost:3000 to complete setup. For a public domain, add PUBLIC_URL=https://your.domain to .env.

Full documentation: README · Client Integration Guide · Native API Contract · OpenAPI Specification