Implement user editable personal pages with subpages So I would like to have this structure:

/users/jhon  
# A page (default blank) which can be edited by jhon

/users/jhon/project  
# A page which can be created and edited by jhon and 
# should be linked to in a menu in /users/jhon

/users/jhon/project/sub-project  
# The same as above and should be linked to 
# in a menu in /users/jhon/project


So I was starting to work on the profiles, but it don't feels like the right way..
You might not be aware of it, but this is a rather broad question.

Drupal is quite different to other CMS's. You don't create pages according to a certain URL structure. In a way, it's the opposite.

Your users just create content with relations/references to other content. How and where that is shown is up to you, not them.

One way to do this is to have two node types, "Project" and "Sub project" for example. Users create projects and they can create sub projects and select the parent project using an entity reference field.

Then, all you need is to set up alias patterns using custom code or the pathauto module (An inofficial D8 port can be found here, use on your own risk) so that it results in those URL's.

You can add plenty of things on top of it with views, custom code and so on: links to create sub-projects from a project, listing projects and subprojects but defining the content structure (and only after that the URL structure) is where you have to start.