Great idea. Just a heads up, the email validation in your index.js isn't functioning; it accepts any arbitrary string (or none at all).
In retrospect, I should have placed the inputs in an actual <form> element so that Chrome's email validation would take effect.
Although in this case, not validating the emails client-side just means I have to validate emails after I receive them. Which is actually good in a way, I like seeing when people send stuff like "DROPTABLEuser" or "'SHOWPROCESSLIST'1=1", it's kind of a fun curiosity I suppose.