podverse / podverse-web

Podverse web app written with React and Next.js
https://podverse.fm/about
GNU Affero General Public License v3.0
80 stars 30 forks source link

Create desktop client version of the Podverse website #912

Open mitchdowney opened 2 years ago

mitchdowney commented 2 years ago

A desktop client would be nice. There are a couple important features I think it could enable us to support too...namely downloading episodes, and adding support for custom RSS feeds from the desktop. (Right now, custom RSS feeds on web are blocked by CORS restrictions, but a desktop app shouldn't be restricted like that).

xthiago commented 2 years ago

(Right now, custom RSS feeds on web are blocked by CORS restrictions, but a desktop app shouldn't be restricted like that).

Just for curiosity: why not have an endpoint in podverse/podverse-api to make that request without CORS restriction (proxy)?

That endpoint can be restricted to only authenticated users and have a rate limit.

mitchdowney commented 2 years ago

@xthiago that's definitely something we could do. My main concern is the server load as our parser operations can be pretty heavy...

That said though, I'm just realizing we wouldn't have to do the read and save operations to the database, which are the heaviest part. So maybe this is more feasible than I thought? Also, I wonder if we should have the custom RSS parser on it's own separate server, so if someone finds a way to overload our server, it won't bring down our whole API.

This could be a considerable amount of work as the podverse-api parser I wrote does not have good separation of concerns, and a lot of db read / writes are a part of it.

This could potentially be a good project for someone in our open source community to write, as we basically just need a parser function that takes a URL, then parses the feed, and returns it as podcast and episode objects in our schema. If that part is finished, I could take care of the front-end handling in the website.

xthiago commented 1 year ago

It makes sense to me. It seems to be easier to create and maintain the feed-parser.