Skip to content

feat(onboarding): add confirmation screen before organization creation - #2847

Merged
RemiBonnet merged 8 commits into
stagingfrom
feat/onboarding-confirm-screen
Aug 5, 2026
Merged

feat(onboarding): add confirmation screen before organization creation#2847
RemiBonnet merged 8 commits into
stagingfrom
feat/onboarding-confirm-screen

Conversation

@jul-dan

@jul-dan jul-dan commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Issue: QOV-2119

Rather than adding a dedicated confirmation screen (which would only reach users on the same browser/device as their previous login — anyone on a new device, incognito window, or with cleared storage would still slip through), this revises the wording of the existing first onboarding step (/onboarding/personalize), seen by every single new signup:

  • The heading now states plainly that continuing creates a new organization
  • The subtitle tells users whose team already has an organization to get an invitation instead
  • A new inline link lets users who signed up with the wrong provider log out and sign in again, right where the mistake is most likely to be noticed

This reaches 100% of new signups without adding an extra screen or step to the funnel.

Screenshots / Recordings

image

Testing

  • Changes tested locally in the relevant Console's pages and Storybooks
  • yarn test or yarn test -u (if you need to regenerate snapshots)
  • yarn format
  • yarn lint

PR Checklist

  • I followed naming, styling, and TypeScript rules (see .cursor/rules)
  • I performed a self-review (diff inspected, dead code removed)
  • I titled the PR using Conventional Commits with a scope when possible (e.g. feat(service): add new Terraform service) - required for semantic-release
  • I only kept necessary comments, written in English (watch for useless AI comments)
  • I involved a designer (qovery-ui skill) to validate UI changes if I am not a designer
  • I covered new business logic with tests (unit)
  • I confirmed CI is green (Codecov red can be accepted)
  • I reviewed and executed locally any AI-assisted code

New signups with 0 organizations now land on /onboarding/confirm before
entering the personalize/use-cases/project funnel. It surfaces the SSO
provider and email just used (plus the previously used provider on this
browser, when different) so users who clicked the wrong SSO button catch
it before creating a duplicate "shadow" organization.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@RemiBonnet

Copy link
Copy Markdown
Member

Qovery Preview

Qovery can create a Preview Environment for this PR.
To trigger its creation, please post a comment with one of the following command.

Command Blueprint environment
/qovery preview cc1de7de-94e5-40f8-8e45-bc8986d9dfec storybook
/qovery preview 964984c5-fba6-4371-88d3-a5daf99642ab test-prod
/qovery preview 28c47145-c8e7-4b9d-8d9e-c65c95b48425 staging
/qovery preview {all|UUID1,UUID2,...} To preview multiple environments

This comment has been generated from Qovery AI 🤖.
Below, a word from its wisdom :

You are going to thank you later if it contains tests

…m screen copy

There's no feature to link or manage additional sign-in providers on an
existing account, so the reassurance microcopy shouldn't promise it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@nx-cloud

nx-cloud Bot commented Aug 4, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit e54495e

Command Status Duration Result
nx run console:build --parallel=3 --configurati... ✅ Succeeded 1m 21s View ↗
nx affected --target=test --parallel=3 --config... ✅ Succeeded 22s View ↗
nx affected --target=lint --parallel=3 ✅ Succeeded 2m 37s View ↗
nx-cloud record -- yarn nx format:check ✅ Succeeded 7s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-08-05 14:56:40 UTC

@RemiBonnet RemiBonnet left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Julien, I added few comments, could you fix the CI too?

Comment thread libs/domains/onboarding/feature/src/lib/step-confirm/step-confirm.tsx Outdated
Comment thread libs/domains/onboarding/feature/src/lib/step-confirm/step-confirm.tsx Outdated
Comment thread libs/domains/onboarding/feature/src/lib/step-confirm/provider-display.ts Outdated
Comment thread apps/console/src/routes/login/auth0-callback.tsx Outdated
Comment thread apps/console/src/routes/_authenticated/onboarding/confirm.tsx Outdated
jul-dan and others added 6 commits August 5, 2026 09:15
- Use Heading and Section instead of raw h1/div for the confirm screen title
- Fold provider-display helpers into step-confirm.tsx instead of a separate file
- Move data-fetching (auth0, user sign-up, local storage) into StepConfirm
  itself instead of threading props from the route
- Add unit tests for StepConfirm
- Only show the confirm screen when this browser previously signed in with a
  different provider than the one just used, instead of on every new signup —
  avoids adding friction for genuinely new users while still catching the
  wrong-SSO-button mistake, using the existing lastUsedLogin signal already
  captured on the login page (no backend change needed)
- Fix yarn nx format:check failure flagged by CI

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ep wording

Remove the dedicated /onboarding/confirm screen and its signal-based gating
(only reached a subset of users on the same browser/device). Instead, revise
the wording of the existing personalize step, seen by every new signup:

- Breadcrumb and heading now say plainly that this creates a new organization
- Subtitle tells users with an existing team to get an invitation instead
- A new inline link lets users who signed up with the wrong provider log out
  and sign in again, right where the mistake is most likely to be noticed

This reaches 100% of new signups without adding an extra screen or step, and
drops the previousUsedLogin/localStorage tracking that only covered users
staying on the same browser.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…nalize step

The breadcrumb and h1 were both action phrases saying nearly the same thing
stacked on screen. Shorten the breadcrumb to a noun phrase, matching the
style already used for the later Organization and Project Creation step.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…into subtitle

Keep "To tailor your experience" as the h1 since it accurately describes
what the form fields are for, and fold the new-organization notice into the
subtitle instead of replacing the heading outright.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The h1 is what users actually read; the breadcrumb is peripheral. Put the
new-organization message where it has the most chance of being noticed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…n is gone

auth0-callback.tsx, login/index.tsx, and auth.enum.ts only changed to
support the dedicated confirm screen and its previousUsedLogin signal, both
now removed. Restore them to their staging state so the PR only touches
container.tsx and step-personalize.tsx, the actual wording change.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 48.29%. Comparing base (0405222) to head (9740f6b).
⚠️ Report is 3 commits behind head on staging.

Files with missing lines Patch % Lines
...ture/src/lib/step-personalize/step-personalize.tsx 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           staging    #2847      +/-   ##
===========================================
+ Coverage    47.64%   48.29%   +0.64%     
===========================================
  Files         1197     1276      +79     
  Lines        25952    27340    +1388     
  Branches      7774     7970     +196     
===========================================
+ Hits         12366    13205     +839     
- Misses       11468    11884     +416     
- Partials      2118     2251     +133     
Flag Coverage Δ
unittests 48.29% <0.00%> (+0.64%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@RemiBonnet
RemiBonnet merged commit e3970fa into staging Aug 5, 2026
7 checks passed
@RemiBonnet
RemiBonnet deleted the feat/onboarding-confirm-screen branch August 5, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants