Skip to content

Signing in

How someone gets into Jaunt. There are no passwords: a phone number and a 6-digit code. The first screen is the Welcome card with Sign In and Sign Up buttons.

One shared card for both: a large title pill with a back chevron, one line of explanation, the phone number field, then Send Code. Send Code stays greyed out until the number looks right.

The only difference between the two is which way the check fails: Sign In needs a number that already has an account, Sign Up needs one that doesn’t. A problem shows as an alert chip under the button (“We couldn’t find an account with that number — try signing up instead.”).

The same card shape again. It names the last three digits of the number and says the code expires in 5 minutes. A plain 6-digit field, then Resend and Submit: one of the few places the app says “Submit”.

After a first sign-up: a name (required) and an optional profile photo, with the same photo upload as everywhere else. Finish stays greyed out until there’s a name.

When someone arrives from an invite link, the jaunt they’re joining stays pinned above every step of signing up, so they never lose sight of what they’re joining. It’s the same invite card the invite link shows.

  • src/web/components/PhoneEntryForm.tsx: the sign in and sign up card
  • src/web/routes/login/verify.tsx: the Enter code screen
  • src/web/components/ProfileForm.tsx, src/web/routes/_authenticated/register.tsx: Finish Account
  • src/web/components/InviteContextBanner.tsx