Authentication
Configure Better Auth and seed your admin account
StudyStudio authenticates users with Better Auth running inside Convex. The auth component is configured in convex/auth.ts and exposes routes at /api/auth/*.
Set the Auth Secret
In .env.local, set BETTER_AUTH_SECRET to a strong random value:
openssl rand -base64 32Paste the output as BETTER_AUTH_SECRET in your .env.local.
Configure Resend for Emails
Email verification and password reset emails are sent through Resend. Set RESEND_API_KEY and RESEND_SENDER_EMAIL (see the Resend step). Without these, verification emails cannot be delivered.
Start the App and Seed the Admin
With Convex running, start the Next.js app (pnpm dev) and visit:
http://localhost:3000/en/admin/loginClick Initialize to seed the default admin account (admin@studystudio.local / admin123) and mark its email as verified. Sign in with these credentials to open the admin panel.
Change the default admin password after your first sign-in from the admin Settings page.
Create and Verify Users
Users sign up with email + password or Google. Email verification is required. To test a new user, register from the login page and click the verification link sent to the inbox (or use a throwaway email service while testing locally).
StudyStudio scopes every notebook, source, message, and study tool to its
owner via an ownerTokenIdentifier, so each student's data stays private -
including per-user chat threads even when a notebook is shared publicly.