Currently, Smoothbrain runs entirely on the user's computer (other than the APIs it uses). However there are some downsides to this, and we should instead have a backend to do some of the lifting.
In particular it should:
Be written in Python/Flask
Support signup/login/account deletion
Support to register your Readwise API key
Use our own GPT key for Q&A generation (eventually we may charge for this. Might want to consider letting people use their own GPT key or have a free tier with limitations)
Use Helicone as the OpenAI base URL, with a user tag
Periodically check Readwise for new highlights, as well as check for any when we receive a new query (It'd be awesome if Readwise had a webhook so we could get a push instead)
Offer an endpoint resembling Readwise's, but add GPT responses to the highlights.
Eventually: offer an endpoint to say whether a highlight was good or not (probably a few different ways of marking it as not good)
Benefits:
Apps will be faster if they don't have to wait for GPT queries.
We can better fine-tune what is a good/bad flash card for individuals + all users.
People can use the endpoint for other flashcard apps.
Downsides:
Privacy-conscious individuals might prefer to not let us see their highlights. However, people can feel free to fork the self-hosted version.
Currently, Smoothbrain runs entirely on the user's computer (other than the APIs it uses). However there are some downsides to this, and we should instead have a backend to do some of the lifting.
In particular it should:
Benefits:
Downsides: