-
Notifications
You must be signed in to change notification settings - Fork 88
Milestone
Description
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:
- 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)
- It is jarring for users trying to just use the app quickly
- 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:
- Current behaviors
- If you have a valid onboarding status, we will attempt to redirect you to to wherever your status is set to
- In future, these lists will be different for desktop and web
- 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.- In desktop, the tutorial will have multiple files, meaning multiple file contents to check, or the state of the whole current project even.
- Maybe we should just create a new project no matter what on desktop
- If you have a valid onboarding status, we will attempt to redirect you to to wherever your status is set to
- New behaviors
- You should never be redirected, but always choose to enter tutorial (via accepting a toast)
- You should see a toast if you have onboarding to do
- For now, you see the same toast whether you haven't done it or you're in the middle of onboarding
- If you accept, it should create a new tutorial project and navigate to it
- This means we can get rid of the warning routes
- 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?
- 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