The on-boarding experience that your users experience when they are first getting to grips with your application will make or break you.

Trying a new application is time consuming and will require a lot of investment and so your potential customers need to immediately understand exactly how you will solve their problems.

A lot of applications will sign up a new user and then dump them into a blank state. This puts all of the work onto the user to figure out how to use the application, and understand if it will work for them.

A much better approach is to put the user into a demo account to see how the application works in full flow.

This sandbox account will allow the user to experiment, learn the tools, and better appreciate your solution for their problem.

In today’s tutorial we will look at importing demo data to create better on-boarding flows for your Laravel application.

How this is going to work

Whenever a new user signs up to the application, we need to create a demo account for the user to play with.

This will entirely depend on the context of your application, but lets just pretend we’re building a project management application. In this case we will need a demo project.

To make this a realistic project, we need to pre-populate it with realistic data.

For example, we will need a selection of tasks that are completed, in progress, and still left to be started.

We will need discussion messages, forum posts, and comments. Dates in the calendar, milestones, and probably a whole load more things to put the user into the middle of a realistic project situation.

So today we’re going to build a way of managing all of this data and importing it into the application.

We will also need a way of allowing multiple different demo contexts.

For example, if our project management application is used by teachers, government officials, or application developers, we should be providing a de