kipple

Self-hosted RSS reader.

Kipple syncs with the RSS apps you already use, keeps everything in SQLite, and runs as one container on one port. It's built to look good while you read.

kipple /ˈkɪpəl/ n. Philip K. Dick's word for the useless things that pile up when nobody is looking. Your unread count, mostly.

420 unread
across 6 feeds
  • Unsung187
  • 512 Pixels101
  • Storied Colors69
  • Electrek42
  • McSweeney's13
  • Saturday Down South8

What it looks like

The web app in Paper and Midnight, on desktop and on a phone. The sample feeds are public ones, including the Wikimedia Commons picture of the day. Photo credits and licenses are on Commons.

Kipple on a desktop in the Paper color scheme. A feed list on the left, article cards in the middle with a large photo of a jabiru and its chicks, and the article open on the right.
The same view in the Midnight color scheme, with a black background and light text.
Kipple on a phone in Paper, showing an article with a photo and caption.
Kipple on a phone in Midnight, showing the article list with large photos.

Why another RSS reader

I wanted one reader with the best parts of all the others, and I didn't want to give up a good-looking app to get it. So I started building one with Claude Code and kept going.

The look is magazine-style, with images up front. It runs on my own server, and it's what I read my feeds in now.

How it works

refresh
Every 30 minutes, or on a schedule of its own for any feed that needs one. A feed that keeps failing gets checked less and less often instead of hammered. You can still refresh everything yourself at any time.
retention
Each feed keeps its newest 50, 100, 250, 500 or 1000 items, or everything. Set it once for all feeds, then override the noisy ones.
sync
The Google Reader API, at /api/greader.php. Any RSS client that supports it can sign in, read, star and mark items as read.
themes
20 color schemes, with separate picks for day and night. The buttons at the top of this page are a few of them.
fonts
Eleven fonts to pick from, including Atkinson Hyperlegible. Bringing your own is planned.
stats
Reading time only counts while the tab is in front and focused. Leaving it open overnight doesn't make you a fast reader.

Anti-features

  • No AI
  • No notifications
  • No social
  • No monitoring or telemetry*

*Unless you turn on reading stats. Those are stored locally, in your own database.

Bring your own client

Kipple has its own web app, and it also speaks the Google Reader API, so the RSS client you already like can sync with it.

Build it

A published Docker image is planned but not out yet. Until then you build it from source, and Docker is all you need.

# get the source and build the image
git clone https://github.com/WPTK/Kipple.git
cd Kipple
cp .env.example .env
docker build -t kipple:latest .

# start it
docker compose -f docker-compose.example.yml up -d kipple

Open 127.0.0.1:7080. To bring your feeds over, pipe an OPML file into kipple import -. Backups, recovery and reverse-proxy notes are in docs/deploy.md.

Where it stands

v0.3.0-alpha.1 is the first public build. Fetching, sync and the reading UI run daily. Installable-app and offline support are next. The diary, decisions and dead ends from building it are in kipple-history.