Skip to main content

Successful signup provides clear confirmation

ab-002347 · saas-onboarding.signup-flow.signup-success-confirmation
Severity: mediumactive

Why it matters

When signup succeeds silently, users cannot tell whether the click worked. Some retry the form and create duplicate attempts that the backend must deduplicate; others assume failure and leave entirely. The user-experience taxon treats acknowledgement of state changes as foundational: the moment an account is created is the single most important transition in the funnel, and a redirect with no toast, welcome screen, or onboarding handoff makes that transition invisible to the user who just completed it.

Severity rationale

Medium because the account exists and the user is logged in, but confusion and duplicate-submission attempts erode the first-session experience.

Remediation

Add an explicit success signal on the post-signup path. In src/app/(auth)/signup/page.tsx, fire a toast with a concrete confirmation message and route new users to a welcome or onboarding route rather than dropping them on the main dashboard. Many auth libraries expose an isNewUser flag you can branch on.

const onSignup = async () => {
  await createAccount(data);
  toast.success('Welcome! Your account has been created.');
  router.push('/onboarding');
};

Detection

  • ID: saas-onboarding.signup-flow.signup-success-confirmation

  • Severity: medium

  • What to look for: Find what happens immediately after a successful account creation. Count all post-signup feedback mechanisms: redirect targets, toast/notification triggers, and confirmation screens. Quote the actual redirect path if found.

  • Pass criteria: After successful signup, the user receives at least 1 clear confirmation mechanism that their account was created — either via a redirect to a welcome screen, a success toast/notification, or an onboarding flow that begins immediately. The user is never left wondering if signup worked.

  • Fail criteria: After successful signup, the user is silently redirected to the main dashboard with no acknowledgment that their account was created. Or: the signup button shows a loading state indefinitely with no success or error feedback.

  • Skip (N/A) when: No signup flow exists in the codebase.

  • Detail on fail: "Post-signup redirect lands directly on /dashboard with no success toast or welcome message. New users receive no confirmation their account was created and may attempt to sign up again."

  • Remediation: In the post-signup callback at src/app/(auth)/signup/page.tsx:

    const onSignup = async () => {
      await createAccount(data);
      toast.success('Welcome! Your account has been created.');
      router.push('/onboarding');
    };
    

    Many auth libraries expose an isNewUser flag on the session for conditional routing.


Taxons

History