Let me suggest another approach: Instead of using a server, simply host a website through cloud services. The data would be stored only in the browser, and we could provide features for accessing and exporting data to synchronize it.
This approach is common on various single-player game walkthrough and password manager websites. One of the benefits is that it's extremely cheap, another is that the operator doesn't have access to user data, so they don't have to take responsibility for user data security. A third benefit is that without a server, you can't hack my server. And finally, the code is simple, saving brainpower (or tokens).