Nommo

It is said that in the first age of Earth, the Nommo descended from the stars into the sea.

It is said that the Nommo came to impart unto man his first wisdom:

that in order to truly live, one must do more than survive; he must know.

Identity

Accounts, recovery, mail

Industry-standard signup, hashed verify and reset tokens, transactional mail, and the demo inbox.

Signup requires name, email, password, confirm-password, and terms. Passwords follow NIST 800-63B (8–72, letter + digit, trimmed, HIBP on the way in). Demo shortcuts (owner@ / driver@ / admin@) skip verify so a pitch still works. Every other email gets a 48-hour hashed token.

Happy path

  1. POST signup → welcome mail with confirm link.
  2. GET /verify-email?token=… consumes the sha256 token, starts the session, redirects by role.
  3. Forgot password → one-hour reset mail. Success copy never says whether the address exists.
  4. Reset consumes the token once, then a “password changed” mail.
  5. Resend confirmation is on /verify-email.

Where tokens and mail live

ThingDemoProduction
Verify / reset tokensha256 in .data/auth-tokens.jsonSame shape in Postgres
Mail body.data/mail.json and /admin/mailResend (RESEND_API_KEY, MAIL_FROM)
Sessionaether_session cookieSupabase Auth
Google / AppleDemo persona emailsSupabase OAuth
  • /signup — create account
  • /login — email, Google, Apple, demo shortcuts
  • /forgot-password
  • /reset-password?token=
  • /verify-email?token= (or resend form)
  • /admin/mail — desk outbox