Background: I'm designing an onboarding tutorial for my app. You can think of my app as a text editor. The tutorial guides the new user through the basics, but can be skipped at any time. I want to allow the user to redo the tutorial later if they skipped it.
However, it just occurred to me today that the onboarding tutorial depends on the files we created for the new user when they signed up. If these sample files get changed or deleted, then the tutorial wouldn't make any sense.
Now the problem is how do I elegantly reconstructe the new user experience when a user decides to resume the tutorial.
Some solutions I came up with:
- If the sample files are edited or deleted, make a note and re-create the necessary files when resuming the onboarding. Pro: straightforward. Con: inelegant in my opinion. Client needs to know the content of these sample documents. From an engineering perspective it's bad. But acceptable if it must be done like this.
- Always do the onboarding tutorial in a sandbox, but gives the option to "Save the document to your workspace. Pro: elegant from an engineering angle. Con: extra complexity for the user ("What does it mean to save to my workspace?")
- Make the sample files special in that it can only be visible in during the onboarding tutorial. Once you skip the tutorial, it's not shown. Pro: solves the problems above. Con: (1) possible confusing ("Where did the thing I just saw go?") and (2) need to mark these sample files as special files, more code complexity.
I'm inclined towards solution #3 right now. Any advice is greatly appreciated!