Feedline#
easily self-hosted, local-first RSS reader and podcast client with p2p sync, and optional ATProto based social discovery.
- subscriptions, read/play state and other actions sync between devices p2p
- media can be downloaded with analysis for skipping silence, and shared via public or private torrent swarm
- optional atproto integration allows easy on-boarding, and sharing subscriptions/favorites/etc through an open social network
development#
- node.js 24+
- npm or pnpm
npm install
npm run dev
# - frontend at `http://localhost:4000` (or configured port)
# - backend server at `http://localhost:4001`, `ws://localhost:4001/stream`
npm test
npm run types
npm run lint -- --fix
# production (heh)
npm run build
npm run start:prod
status: early#
the core realm protocol is working, but feed/podcast features are still being built. don't use this yet.
self-hosting#
feedline is designed to be self-hosted:
- hosted - run the web app from https://app.feedline.at, and we use the following:
- CORS proxy
- reader-mode proxy
- audio file downloads for analysis (when not marked private)
- home server - run a local server for your devices (via Docker/Podman)
- should support
mdns, client connects, gets PWA, server does syncing - "discovery" and other social features would still come from upstream if that's desired
ATProto integration#
feedline integrates with ATProto for:
-
easy cross-device bootstrapping
- if both devices are signed in through ATProto OAuth, we don't have to worry about invitation
-
social & discovery
- sharing subscriptions means we can track common ones, trending, all that good stuff
- sharing "shares" or "favorites" or whatever gives nice google-reader vibes
- share to bluesky / some sort of native commenting or whatever would be easy/useful
ATProto should never be required - offline first with a self-hosted server for fetching should always work.
license#
AGPL