Skip to content

Agentic UI: Rework the new-user onboarding screens - #4413

Open
bcotrim wants to merge 4 commits into
trunkfrom
stu-2019-new-user-experience-nux-design-improvements
Open

Agentic UI: Rework the new-user onboarding screens#4413
bcotrim wants to merge 4 commits into
trunkfrom
stu-2019-new-user-experience-nux-design-improvements

Conversation

@bcotrim

@bcotrim bcotrim commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Related issues

How AI was used in this PR

Claude ported the design from the exploration branch (explore-site-centric-conversation-chrome, #3975) onto current trunk, and I reviewed every screen in the running app. Worth a close look at two things the AI changed rather than copied:

  • The exploration cross-imports welcomeStyles into connect and tour for the feature card and auth buttons. That's extracted into shared components instead — which surfaced real drift, e.g. the tour used variant="outline" for Log in while welcome used solid, under a comment claiming they matched.
  • EmptyBackground is parameterized on top of trunk's version rather than taking the exploration's copy, since f61ebe7 changed that component after the branch forked.

Proposed Changes

Second pass on the first-run flow: welcome → concept tour → Add a site. Each screen now owns one story instead of three screens repeating the same pitch.

  • The welcome leads with what a WordPress.com account unlocks (Studio Code, sync, previews) and asks for login once, with a reason.
  • Two tour screens introduce local sites and Studio Code. The last doubles as the second and final login prompt for people who skipped, since the agent needs an account.
  • Terminology follows one verb map: create a local site, connect a live one, import a backup, build reserved for Studio Code. Account auth is always "log in with".
Welcome Step 1 Step
image image image
image image image

Testing Instructions

The welcome only shows with zero sites, so point the app at an empty config rather than deleting yours:

DEV_CONFIG_DIR=/tmp/nux npm start
  1. Walk welcome → tour → tour step 2 → Add a site. Back should retrace it.
  2. Skip login on the welcome; step 2 should offer Sign up / Log in and a "Skip log in" primary action.
  3. Log in from the welcome — it should advance on its own.
  4. Check both color schemes

Pre-merge Checklist

  • Have you checked for TypeScript, React or other console errors?

@bcotrim bcotrim self-assigned this Aug 3, 2026
@katinthehatsite

Copy link
Copy Markdown
Contributor

DEV_CONFIG_DIR=/tmp/nux npm start

TIL: this is nice and makes testing so much easier 👍

@wpmobilebot

wpmobilebot commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

📊 Performance Test Results

Comparing 1ba27d5 vs trunk

app-size

Metric trunk 1ba27d5 Diff Change
App Size (Mac) 1372.96 MB 1372.99 MB +0.03 MB ⚪ 0.0%

site-editor

Metric trunk 1ba27d5 Diff Change
load 1054 ms 1058 ms +4 ms ⚪ 0.0%

site-startup

Metric trunk 1ba27d5 Diff Change
siteCreation 6541 ms 6592 ms +51 ms 🔴 0.8%
siteStartup 2386 ms 2376 ms 10 ms ⚪ 0.0%

Results are median values from multiple test runs.

Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff)

@bcotrim
bcotrim requested review from nightnei and sejas August 3, 2026 11:00
viewBox="0 0 200 130"
fill="none"
xmlns="http://www.w3.org/2000/svg"
aria-hidden="true"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I see that in some places we specifically set it to true while in others just pass true as default. I am wondering if we should stick to one approach? It is not a big deal though, mostly a nit

}
/>
<p className={ styles.legal }>
{ __( 'By continuing, you agree to our' ) }{ ' ' }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we use createInterpolateElement with a single translatable string containing placeholder markers here to avoid splitting the sentence in 4 different bits?

@katinthehatsite katinthehatsite left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The changes look good to me 👍 I left some minor comments but they are not blockers. One thing that I noticed is that when the screen gets to the smallest size, the text for the legal details goes somewhat too close to the rest to the rest of the text so it looks a bit crowded:

Image

],
},
{
title: __( 'Build with Studio Code' ),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One general thought is that I am not sure why we need both of these screens:

Image Image

It seems to me that we are keeping the user further from the action of creating a site and it would be nice if the user got there faster

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.

3 participants