Repository navigation
FeedKeeper 0.18.0
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 themanageUrlof the plan) for an account whose capabilities do not includesync. 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 -dOpen 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