Proposal: Decouple Flipstarter frontend from backend
@emergent-reasons requested I put in a proposal for this.
Proposal: Decouple Flipstarter's frontend from backend. Reason: Campainer experience Non-technical specifications:
- As a campaigner, I want to know potential pledgers are generating the correct contribution data.
- As a campaigner, I want to choose if pledgers to send their signed contribution data to a third party to store or my own backend.
- As a campaigner, I want to choose to fetch stored campaign data from a third party or my own backend to display to pledgers. (total contribution count, comments, etc.)
- As a campaigner and pledger, I want to know the third party cannot manipulate the data and steal funds.
- As a campaign hoster (new), I want to store and return contribution data without the ability to modify it and steal funds.
- As a campaign hoster (new), I want to require an API token or require a specific recipient is added to the campaign (monetization).
Technical rundown: Although campaigners should still be able to host their own backends, the option to use a third party to store contribution data should simplify hosting requirements for a flipstarter (thus enabling the free options of many hosting platforms, like Heroku).
A static JSON configuration file will be necessary to store non-contribution data (title, recipients, API endpoint, etc) and
will essentially replace the campaign /create
route currently in the backend. 3rd party backends may host the /create
route and output the necessary JSON configuration to be verified by the campaigner. This can also be added as part of a npm script for the front-end.
Also, it should be possible to continue hosting multiple campaigns from one front-end (with option for different backends for each).