Skip to content

Make onboarding tutorial optional #6542

@franknoirot

Description

@franknoirot

Currently the onboarding tutorial logic works by redirecting the user to a tutorial welcome screen if they try to enter a project and they have a valid app.onboardingStatus setting value (not "dismissed" or "finished"). This flow has several problems:

  1. It provides no indication on the home page that there is a tutorial at all (see onboarding doesn't start on the home screen #4904)
  2. It is jarring for users trying to just use the app quickly
  3. Partially because of point 2, it results in more dismissals of the tutorial than if the user were able to run it when they were ready to learn more

We should make the onboarding optional and not redirect-based, and separately show an affordance on the home screen in Desktop so that users aren't forced to dismiss or begin it right when they're starting to use the app.

Here are some requirements I've written down to gather my thoughts:

  1. Current behaviors
    1. If you have a valid onboarding status, we will attempt to redirect you to to wherever your status is set to
      1. In future, these lists will be different for desktop and web
    2. If you have code that isn't the tutorial code or empty, we throw up a warning component on the /onboarding/ route before running the code reset.
      1. In desktop, the tutorial will have multiple files, meaning multiple file contents to check, or the state of the whole current project even.
      2. Maybe we should just create a new project no matter what on desktop
  2. New behaviors
    1. You should never be redirected, but always choose to enter tutorial (via accepting a toast)
    2. You should see a toast if you have onboarding to do
      1. For now, you see the same toast whether you haven't done it or you're in the middle of onboarding
    3. If you accept, it should create a new tutorial project and navigate to it
      1. This means we can get rid of the warning routes
      2. On the web we can't just create a new project on the user's behalf, so maybe we throw up a confirmation toast instead of making it a route?
      3. We should toast what we did on your behalf regardless

Note

We're going to transition from using the term "onboarding" to "tutorial", although these components and functions are named related to onboarding in the code base.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions