Skip to content

explore(desktop): anonymous app-shell home on first open (Discord model) - #5987

Open
thomaspblock wants to merge 1 commit into
explore/discord-style-landingfrom
explore/anonymous-shell-home
Open

explore(desktop): anonymous app-shell home on first open (Discord model)#5987
thomaspblock wants to merge 1 commit into
explore/discord-style-landingfrom
explore/anonymous-shell-home

Conversation

@thomaspblock

Copy link
Copy Markdown
Contributor

Exploration: anonymous app-shell home on first open

Second exploration branch for the onboarding flip, requested in buzz-onboarding. Builds on #5976 (explore/discord-style-landing).

The idea (Discord model): a fresh install opens anonymously into something that looks like the app — a ghost community rail + sidebar skeleton on the left, and a community-discovery home in the main pane — instead of a centered onboarding corridor or an agent greeting.

What changed

  • New AnonymousShellLanding: full-bleed mock app frame. Left: ghost rail (compass home, community skeletons, +) and sidebar (search, Inbox/Pulse/Projects/Agents, channel + DM skeletons, "Guest" identity card). Main pane: "Find your community on Buzz" hero, featured community cards with one-click Join, and quiet below-the-fold options (classic identity/agents corridor, key import).
  • The discover page now escapes the onboarding shell entirely — no chartreuse welcome chrome, no max-w-[1040px] centered stack; renders h-dvh app-frame layout in the normal app theme.
  • One-click Join unchanged from explore(desktop): discovery-first onboarding landing (Discord-style) #5976: identity persisted silently, communityOnboarding.start() connects to the chosen relay; backup/harness/agent config deferred to post-join.
  • Replaces DiscoveryLanding (superseded by this layout); spec renamed to anonymous-shell-shot.spec.ts with rail/sidebar assertions.

Verification (local, commit a737d62)

  • pnpm typecheck, pnpm check, unit suite: green (4954 pass / 0 fail).
  • anonymous-shell-shot.spec.ts e2e: passes (shell renders, corridor reachable and returns, one-click join lands in the app).
  • Onboarding-adjacent smoke specs (identity-lost, onboarding-backup, key-import-reveal, identity-key-help): 13 failures locally, but the identical failure set reproduces on the base commit 3ddaa0d (explore(desktop): discovery-first onboarding landing (Discord-style) #5976, where CI shows the same smoke shards failing) — pre-existing on the exploration base, not introduced here.

Exploration only — not intended to merge as-is.

A fresh install now opens straight into a full-bleed mock of the app
frame — ghost community rail and sidebar skeleton on the left, a
Discord-style community-discovery home in the main pane — instead of
a centered onboarding card stack. The user is presented with options
(join a featured community, set up identity & agents, import a key)
rather than being put in front of an agent as the first thing.

Joining stays one click: identity is persisted silently and a
first-community onboarding transaction connects to the chosen relay.
The classic corridor and key import remain reachable below the fold.
Replaces the centered DiscoveryLanding from the previous exploration
with AnonymousShellLanding; the discover page escapes the onboarding
shell (no chartreuse welcome chrome) and renders the app frame.

Exploration for the community-first onboarding flip (Track 2), built
on top of explore/discord-style-landing.

Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Signed-off-by: Thomas Petersen <thomasp@squareup.com>
@thomaspblock
thomaspblock requested a review from a team as a code owner August 15, 2026 20:22
thomaspblock pushed a commit that referenced this pull request Aug 15, 2026
thomaspblock pushed a commit that referenced this pull request Aug 15, 2026
@thomaspblock

Copy link
Copy Markdown
Contributor Author

Screenshots from the anonymous-shell-shot.spec.ts run (1280×960):

  1. Anonymous shell home — first open, no identity: ghost rail + sidebar, discovery in the main pane.
  2. Advanced setup corridor — reachable one click below the fold; back returns to the shell.
  3. After one-click Join — identity created silently, landed in the app.

01-anonymous-shell-home

02-advanced-setup-corridor

03-after-join-click

@themiguelamador themiguelamador left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Three blocking/polish findings on the current exploration head:

  • The landing escapes the neutral onboarding theme but keeps Card variant="textured" at its default light texture. On a fresh install following a dark system theme, the cards become bright white powder under light text; names, counts, and descriptions are effectively unreadable.
  • At the supported 800px minimum window, the fixed 296px ghost chrome leaves too little main-pane width while the viewport-wide sm:grid-cols-2 still forces two 224px-minimum cards. Content truncates and the textured surfaces crowd each other.
  • The newly visible ghost-sidebar copy has eight WCAG AA contrast failures in dark mode (ratios down to 2.8:1).

I fixed all three in signed commit fbd86df8c and published the proposed patch here:
https://github.com/Complear/buzz/tree/review/pr-5987-fix

The patch selects the texture from useTheme().isDark, delays the two-column layout until lg, raises decorative-copy contrast, and adds a dark 800x500 E2E regression for texture choice, stacking, and horizontal overflow.

Verification: E2E build; onboarding E2E 2/2; desktop typecheck; desktop unit tests 4954/4954; focused Biome; file-size/text-size guards; interactive 800x500 dark browser check; post-fix axe cleared all PR-introduced contrast violations (only the pre-existing empty document title remains).

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