Make a learning resource with some sort of workflow/progression, which can be demarcated with steps/points/awards/badges/etc. Have the project pick up where the user left off if they refresh (or close and re-open) the page. See persistence page in syllabus for options.