selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Refeed logo

Self-host Refeed

Open-source RSS reader with timed bookmarks and newsletters

AlphaOpen SourceMIT
Docker ComposeCompose file & guide
docker-compose up --build
Updatedlast year
LanguageTypescript
Setup difficultyAdvanced
Stars
182
Ports
3000 (web frontend), 4050 (backend API)
Requires
S3-compatible object storage (e.g., Cloudflare R2)
Refeed screenshot 1Refeed screenshot 2

What is Refeed?

Refeed is an open-source RSS reader built with Next.js, tRPC, React, and Supabase. It lets users organize and read content from multiple sources in one place. Key capabilities include timed bookmarks that auto-expire, keyword and author filters, bookmark folders, inline note-taking, mark-read-on-scroll, a dedicated email address that converts newsletters into RSS feeds, fullscreen reading mode, and full content fetching. The web UI runs on port 3000 and a Rust backend on port 4050. Self-hosting requires a Supabase instance (self-hosted via Docker or hosted) for authentication and database, plus S3-compatible storage (e.g., Cloudflare R2) for images and icons. Optional integrations include OpenAI for AI features, Stripe for billing, PostHog for analytics, Sentry for error tracking, and YouTube API for RSS link generation. The mobile app (Expo/React Native) does not yet support self-hosted instances. No public releases have been published; the project is actively developed with the latest commit in June 2025.

Should you self-host Refeed?

Refeed scores 38/100 on selfhost.directory (how scoring works) and ranks #72 of 85 in Feed Reader. It has 182 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is RSSHub (85/100, 46 704 stars). It scores higher overall, so compare the two before you pick. See Refeed vs RSSHub side by side.

Features

  • Article Note-Taking
  • Bookmark Folders
  • Content filters
  • Full Content Fetching
  • Fullscreen Reading Mode
  • Mark Read on Scroll
  • Newsletter to RSS
  • Notes
  • RSS feed reading
  • Timed Bookmarks

Refeed README

How to install Refeed

Install Refeed with Docker Compose

Environment variables
DATABASE_URL, NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, IMAGE_ACCOUNT_ID, IMAGE_ACCESS_KEY_ID, IMAGE_ACCESS_KEY_SECRET, IMAGE_BUCKET_URL, ICON_BUCKET_URL, OPENAI_API_KEY, REFEED_BACKEND_URL, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, NEXT_PUBLIC_POSTHOG_KEY, NEXT_PUBLIC_POSTHOG_HOST, YOUTUBE_API_KEY, SENTRY_AUTH_TOKEN, GOOGLE_CLOUD_PROJECT, EXPO_PUBLIC_BACKEND_URL, EXPO_PUBLIC_SUPABASE_URL, EXPO_PUBLIC_SUPABASE_ANON_KEY, EXPO_PUBLIC_APPLE_SHARED_SECRET, EXPO_PUBLIC_IOS_REVENUE_CAT_KEY, EXPO_PUBLIC_ANDROID_REVENUE_CAT_KEY
  1. Clone the GitHub Repo
  git clone http://github.com/michaelkremenetsky/personal-refeed-version refeed
  1. Change into the directory
  cd refeed
  1. Setup Supabase via Docker Image or using the Hosted Platform
  2. Run this SQL in the Supabase SQL Editor
  3. Fill out the required Environment variables:
  • DATABASE_URL
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • IMAGE_ACCOUNT_ID
  • IMAGE_ACCESS_KEY_ID
  • IMAGE_ACCESS_KEY_SECRET
  • IMAGE_BUCKET_URL
  • ICON_BUCKET_URL
  1. Build and start Refeed via docker-compose
  docker-compose up --build
  1. Open http://localhost:3000 in your browser.

Requires Supabase (self-hosted or hosted) and S3-compatible storage (e.g., Cloudflare R2). Mobile app does not yet support self-hosted instances.

How to configure Refeed

  • DATABASE_URLPostgreSQL connection string for Supabase (add ?pgbouncer=true)

    PostgreSQL connection string for Supabase (add ?pgbouncer=true)

  • DIRECT_URLDirect PostgreSQL connection string (without pgbouncer)

    Direct PostgreSQL connection string (without pgbouncer)

  • EXPO_PUBLIC_ANDROID_REVENUE_CAT_KEYRevenueCat API key for Android

    RevenueCat API key for Android

  • EXPO_PUBLIC_APPLE_SHARED_SECRETApple shared secret for RevenueCat (iOS)

    Apple shared secret for RevenueCat (iOS)

  • EXPO_PUBLIC_BACKEND_URLBackend URL for Expo mobile app (production)

    Backend URL for Expo mobile app (production)

  • EXPO_PUBLIC_IOS_REVENUE_CAT_KEYRevenueCat API key for iOS

    RevenueCat API key for iOS

  • EXPO_PUBLIC_SUPABASE_ANON_KEYSupabase anon key for Expo mobile app

    Supabase anon key for Expo mobile app

  • EXPO_PUBLIC_SUPABASE_URLSupabase URL for Expo mobile app

    Supabase URL for Expo mobile app

  • GOOGLE_CLOUD_PROJECTGoogle Cloud project ID for logging

    Google Cloud project ID for logging

  • ICON_BUCKET_URLS3/R2 bucket URL for icons (bucket named 'icons')

    S3/R2 bucket URL for icons (bucket named 'icons')

  • IMAGE_ACCESS_KEY_IDS3/R2 access key ID

    S3/R2 access key ID

  • IMAGE_ACCESS_KEY_SECRETS3/R2 secret access key

    S3/R2 secret access key

  • IMAGE_ACCOUNT_IDS3/R2 account ID

    S3/R2 account ID

  • IMAGE_BUCKET_URLS3/R2 bucket URL for images (bucket named 'images')

    S3/R2 bucket URL for images (bucket named 'images')

  • NEXT_PUBLIC_POSTHOG_HOSTPostHog host (leave empty unless self-hosting PostHog)

    PostHog host (leave empty unless self-hosting PostHog)

  • NEXT_PUBLIC_POSTHOG_KEYPostHog analytics public key

    PostHog analytics public key

  • NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYStripe publishable key for billing

    Stripe publishable key for billing

  • NEXT_PUBLIC_SUPABASE_ANON_KEYSupabase anonymous public key

    Supabase anonymous public key

  • NEXT_PUBLIC_SUPABASE_URLSupabase project URL

    Supabase project URL

  • OPENAI_API_KEYOpenAI API key for AI features

    OpenAI API key for AI features

  • REFEED_BACKEND_URLBackend URL (leave blank when using Docker)

    Backend URL (leave blank when using Docker)

  • SENTRY_AUTH_TOKENSentry authentication token for error tracking

    Sentry authentication token for error tracking

  • STRIPE_SECRET_KEYStripe secret key

    Stripe secret key

  • STRIPE_WEBHOOK_SECRETStripe webhook secret

    Stripe webhook secret

  • SUPABASE_SERVICE_ROLE_KEYSupabase service role key (admin)

    Supabase service role key (admin)

  • YOUTUBE_API_KEYYouTube API key for RSS link generator

    YouTube API key for RSS link generator

More in Feed Reader

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…