Sign-up
To create an account, a user fills in their name, email address, and a password. Passwords must be at least 12 characters and no more than 128 characters.Fill in the sign-up form
Navigate to
/signup and enter your name, email, and password. Google sign-up is also available as a one-click alternative.Check your inbox
After submitting, you’ll always see a “check your inbox” confirmation — regardless of whether the email is already registered. This is intentional: the same screen appears for new accounts and existing ones alike to prevent account enumeration.
Click the verification link
Open the verification email and click the link to activate your account. The link expires after 30 minutes. Without verification, sign-in is blocked.
The “check your inbox” screen is identical whether you’re signing up for the first time or using an email that’s already registered. If the email already exists, the real account owner receives a security notification email instead. This OWASP anti-enumeration pattern means an attacker cannot determine whether an email address is registered in your system.
Sign-in
Signing in at/login requires your verified email and password. After a successful sign-in:
- A session cookie (
HttpOnly,Secure,SameSite=Lax) is set in your browser. - You are redirected to your most recent organization dashboard, or to
/onboardingif you have no organizations yet. - If you arrived at the login page from a protected route, you are sent back to your original destination.
Email verification
Email verification is required before you can sign in. This is enforced server-side: unverified accounts cannot authenticate. If your verification email expires or doesn’t arrive, use the resend option on the sign-in page. Verification links expire after 30 minutes.Forgot and reset password
Request a reset link
Navigate to
/forgot-password and enter your email address. You’ll see the “check your inbox” confirmation regardless of whether the email is registered — the same anti-enumeration behavior as sign-up.Click the link in your email
Open the password reset email and click the link. Reset tokens expire in 30 minutes and can only be used once.
Resetting your password immediately invalidates all of your existing sessions across every device. You will need to sign in again on each one.
Google OAuth
Google sign-in is available on both the sign-up and sign-in pages. Clicking the Google button redirects to Google’s consent screen, and on success, you’re returned to/dashboard. No email verification step is required for OAuth accounts — Google has already verified the address.
Session behavior
Sessions last 7 days and are stored as encrypted cookies. The session is automatically refreshed when you make a request after 24 hours, so active users stay signed in without interruption.Security defaults at a glance
| Control | Value |
|---|---|
| Minimum password length | 12 characters |
| Maximum password length | 128 characters |
| Sign-in rate limit | 5 attempts per minute |
| Sign-up rate limit | 3 attempts per minute |
| Forgot password rate limit | 3 attempts per minute |
| Password reset token expiry | 30 minutes |
| Session duration | 7 days |
| Session cookie | HttpOnly, Secure, SameSite=Lax |
| Session cache | JWE-encrypted, 5-minute TTL |
| Sessions revoked on password reset | Yes |
