Skip to main content
TrayLinx supports three authentication methods: email and password, Google OAuth, and GitHub OAuth. All methods result in a JWT-based session that persists across devices.

Authentication methods

Sign up with email

  1. Go to the TrayLinx login page and click Sign Up (or navigate directly with ?mode=register).
  2. Select Email Address as your registration method.
  3. Enter your email address and choose a password. Confirm the password in the second field.
  4. Accept the terms and submit the form.
TrayLinx validates your email address in real time as you type. If the address is already in use, an error appears before you submit.After registration, you are prompted to verify your account. TrayLinx sends a verification code to your email address. Enter the code to activate your account — you are logged in automatically on success.

Sign up with phone number

On the registration form, select Phone Number instead of Email Address. Choose your country code from the dropdown (TrayLinx detects your country automatically from your browser timezone), enter your number, and complete the form. A verification code is sent to your phone.

Log in with email

  1. Go to the TrayLinx login page.
  2. Enter your username (email address) and password.
  3. Click Sign In.
If you have a pending account activation from a previous registration attempt, TrayLinx shows a recovery banner on the login page. Click Continue Verification to resume the activation flow without registering again.

Password reset

If you forgot your password:
  1. On the login page, click Forgot password? (or navigate with ?mode=forgot-password).
  2. Enter your email address and submit the form.
  3. Check your inbox for a reset link. Click the link to set a new password.
The password reset form is disabled after a successful submission to prevent duplicate requests. You can return to the login page at any time by clicking Back to login.

Beta access gate

TrayLinx is currently in closed beta. If your account does not have an approved beta invitation, you see the Beta Access Required screen before the login form. To pass the gate:
  1. Enter your email address and invitation code.
  2. Complete the reCAPTCHA challenge.
  3. Click Verify Access.
If you do not have an invitation code, click Request Beta Access to apply.
Administrators can bypass the beta gate entirely by setting the REACT_APP_DISABLE_BETA_GATE=true environment variable. This is intended for development and testing environments only.
Once verified, TrayLinx stores your access status in a secure browser cookie (beta_access_granted) so you do not need to re-enter the code on the same device.

Session management

TrayLinx uses JWT (JSON Web Token) authentication. After a successful login, the platform stores an access token and a refresh token in your browser’s localStorage. On login, TrayLinx:
  1. Clears any cached data from the previous session.
  2. Stores your access token, refresh token, and user profile.
  3. Calls the User Settings API (/user_settings?client=web) — a single request that returns your settings, organizations, projects, and pinned items.
  4. Applies your stored preferences (theme, language, sidebar state) immediately.
  5. Navigates you to the appropriate page based on your account state.
Account stateDestination after login
Has a current organizationDashboard
Has organizations, no current one setDashboard (first organization is selected)
No organizationsOrganizations page
Your settings — including theme, language, and sidebar state — are synchronized automatically across all devices through the User Settings API. Changes you make on one device are reflected the next time you log in from another.
Logging out clears your access token, refresh token, and all cached data. Your organization and project context (current organization ID, current project ID) are preserved so they are restored on your next login.

CLI login

The TrayLinx CLI uses a magic link flow for authentication. Run traylinx open from your terminal to generate a magic link. The link opens a browser tab at /auth/cli-login, exchanges the magic token for an access token, and then logs you in and redirects to the dashboard automatically. Magic links expire after a short period. If yours has expired, run traylinx open again to generate a new one.

Build docs developers (and LLMs) love