- [x] two column layout for the page.
- [x] amount to learning minutes mapping for contribution impact.
- [x] handle one-time and recurring stripe subscription charges.
- [x] server side validation of donate forms.
- [x] prevent multiple subscriptions and onetime donations per user.
One file that is not tracked here is rev-manifest.json.
It is generated at runtime and its contents change as the contents
of client side files change.