B — POST + JSON
A client-side handler intercepts the submit, calls
/api/residents/join-json
, and writes the response message into the page. No navigation.
Try gary@super.com (will join), bob@super.com (already a resident), or villain@evil.com (rejected).