Skip to content

Work / Scrvio / Wiki / Surfaces

register

Surfacecanonicalverified 2026-10-04

SURFACE.WEB.REGISTER

Summary

Account creation with name, email and password, or Google.

Raw wireframe

  • .context/designs/web/auth/register.html
  • .context/designs/web/auth/register-error.html

Why it is drawn this way

The subtitle belongs to another product. register-form.tsx says "Join thousands of learners and start your journey today". Scrvio has no learners. Drawn as written.

The plan choice is thrown away. Pricing links here as /auth/register?plan=pro and ?plan=team. The page reads only redirect. Nobody reads plan, and a new account lands on Home on the free tier.

The error state draws the two checks a browser lets through. validateForm() has six messages. The inputs are required and type="email", so only "Password must be at least 8 characters" and "Passwords do not match" can really appear.

"Email available" never shows. The form supports a live check through checkEmailAvailability. The page does not pass that prop, so the status row is dead code.

A taken email is reported under Full Name. The server says "This user already exists." The form looks for the word email, does not find it, and puts the message under the name field.

No email verification step follows. Success is router.push("/"). The verify-email screens are reached only from a link in an email.

Related

Sources

  • apps/website/src/app/auth/register/page.tsx
  • packages/ui/src/components/auth/register-form.tsx
  • apps/server/src/shared/errors/error.factory.ts