RSSwipe is a RSS reader that allows you to find your next article just like you would find your next date. Swipe left to skip, swipe right to save for later. It's that simple.
This repo contains the code for the frontend, a progressive web app written in Vuejs, and the backend, an expressjs server with a prisma database exposing a REST api.
RSSwipe was originally developed as a project for a web engineering course at the University of Applied Sciences Lübeck. We took a lot of inspiration from Fox RSS - a similar app for swiping articles but it runs natively on Android and has no backend.
You can swipe through articles like you would on a dating app. Swipe left to skip, swipe right to save for later.
Your account is synced across all your devices. You can use RSSwipe on your phone, tablet and computer.
RSSwipe is a progressive web app. You can install it on your phone or computer and use it like a native app. Articles in your readinglist are available offline.
You can add RSS, Atom and RDF feeds to your account. They are automatically updated on the server every few minutes.
You can save articles for later in your readinglist. The readinglist is synced across all your devices. To keep it clean, you can set a time after which articles are automatically removed.
When you find an article you want to read, you can open it in the app. The article is displayed in a clean and readable format powered by Mozillas Readability. You can set per feed if you want to open the article in the app or in the browser - this way you can still support your favorite content creators.
You swipe too much? No problem, you can set a swipe limit per day. When you reach the limit, you can still read articles in your readinglist.
The recommended way to deploy RSSwipe is to use the provided docker-compose file.
To deploy the app, you need to have docker and docker-compose installed on your machine.
Get the docker-compose.yml
file in the docker directory of this repository:
wget https://raw.githubusercontent.com/Importantus/RSSwipe/main/docker/docker-compose.yml
Create an .env
file in the same directory as the docker-compose file and copy the content of the .env.prod
file into it.
wget -O .env https://raw.githubusercontent.com/Importantus/RSSwipe/main/.env.prod
Edit the .env
file and set the values for the environment variables.
Start the app (this may take a short while):
docker compose up
The app is now running on port 80 or the custom FRONTEND_FORWARD_PORT
you set in the .env
file.
To run the app in the background, add the -d
flag:
docker compose up -d
To update the app, pull the latest changes from the repository and restart the app:
docker compose pull && docker compose up -d
Clone the repo:
git clone https://github.com/Importantus/RSSwipe.git
Create an .env file in the root directory of the project and copy the content of the .env.local file into it. Do the same for the .env file in the /backend/prisma directory.
Start the app:
cd RSSwipe/
docker compose up
Run migrations:
cd backend/
npx prisma migrate deploy
Generate the prisma client:
npx prisma generate
Make changes to the schema.prisma file
Create a migration:
npx prisma migrate dev --name <name of migration>
If there are problems with the database, try to delete the docker volumes and restart the app:
docker compose down -v
docker compose up --build