I'm working on a 'mental wellness' app, functionality for which includes things such as making journal entries (typed and voice recorded), recording affirmations, creating to-do lists, setting goals/targets etc.
My question is, should I store the user data from the above such actions locally, which gives the user a greater sense of control over their privacy or should I store it on our server in an encrypted DB?
My initial instinct was to go both to allow users to use to do things such as make journal entries even without internet connection, which can then send that data to server/DB once online again. But wasn't sure if this was a major drawback in terms of users privacy i.e. their 'private' journal entries being on our server/DB, albeit encrypted and widely used facilities i.e. AWS, Firebase, Azure. The obvious benefit of having it on server side DB is that they can use different devices such as phone and tablet or can have access if they move to a new device e.g. get a new phone.
But then the alternative I thought of was having users data all stored locally on device and then allowing them to sync to their iCloud or Google Drive or having the app auto sync. Is this a good alternative or compromise?
Is there a preformative benefit one way or the other?
I would appreciate your feedback on what you would consider the best route from both a user experience perspective as well as the technical best practice.
Many Thanks