Skip to content

feat: Add onboarding tour and sample rules to popup workspace - #10

Open
google-labs-jules[bot] wants to merge 1 commit into
mainfrom
jules/popup-tour-sample-rules-js1-0727f9ac-95c8-4e19-81ab-debc1b07966f
Open

feat: Add onboarding tour and sample rules to popup workspace#10
google-labs-jules[bot] wants to merge 1 commit into
mainfrom
jules/popup-tour-sample-rules-js1-0727f9ac-95c8-4e19-81ab-debc1b07966f

Conversation

@google-labs-jules

Copy link
Copy Markdown

Why

New extension users frequently experience immediate friction and high drop-off rates because they are presented with a blank canvas and must configure complex network rules without inline examples or guidance.

To improve early-stage retention and reduce the workspace abandonment rate, we are introducing a self-contained, interactive walkthrough alongside safe, pre-configured sample rules. This onboarding experience is designed to help users understand the extension's core capabilities and successfully activate their first rule in less than a minute.

Key Decisions & Rationale

  • Zero-Dependency Overlay (TourOverlay.tsx): Instead of pulling in a heavy third-party onboarding library that could bloat the extension package and cause layout shifting within the strict 540px popup width limit, we implemented a lightweight, custom React-based tour. It uses native CSS variables and a high-contrast shadow-scrim masking technique (box-shadow: 0 0 0 9999px var(--scrim)) to isolate target elements cleanly.
  • Safety-First Inactive Defaults: To ensure the extension never intercepts or alters live network traffic without explicit user intent, all initialized sample rules are marked inactive (enabled: false) by default.
  • Self-Contained Workspace Execution: The entire onboarding flow is housed directly within the popup workspace context, completely avoiding disruptive external tab redirects.
  • Frictionless Recovery via Empty States: If users clear their rules, we prevent a dead-end experience by replacing empty panels with clear Call-to-Action (CTA) triggers to reload default sample rules or restart the onboarding tour.

What Changed

1. Interactive Onboarding Walkthrough

  • Created /app/entrypoints/popup/TourOverlay.tsx to handle tour stages, pointer alignment, and backdrop masking.
  • Supports both light and dark system themes seamlessly with high-contrast, WCAG-compliant styling.
  • Automatically triggers on the first launch of the popup and persists completion status (hasCompletedTour: true) to local storage to prevent unwanted repetition.

2. Self-Documenting Sample Rules

  • Populated the initial state with three disabled, high-utility sample rules covering both Request and Response contexts:
    • X-Developer-Mode
    • Authorization
    • Cache-Control

3. UX Control & Empty State CTAs

  • Added a "Dismiss" option on all tour steps to immediately opt-out and save state.
  • Added a permanent "Tour" button in the profiles action bar to allow users to manually restart the guide at any time.
  • Designed a fallback view for empty tabs featuring intuitive actions to "Reload Sample Rules" or "Restart Tour".

Verification Checklist

  • Walkthrough tour triggers automatically on the very first popup launch.
  • Tour does not repeat on subsequent launches once completed or dismissed.
  • Pre-populated sample rules are marked as inactive (enabled: false) by default.
  • Users can dismiss the tour permanently from any step.
  • Popover arrows and highlights align correctly in both light and dark system themes.
  • "Reload Sample Rules" repopulates the active workspace if empty.

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.

0 participants