Either are fine and it totally depends on your project. I just wouldn't use shared hosting. You want to have full control and be able to use ssh, and make /public the DocumentRoot of the site. Shared hosting usually has a lot of restrictions and you'll have to come up with workarounds, and some things just might not be possible.
I am peronsally partial to linode or digital ocean...but that is literally my person choice.
Anything that gives you full ssh access is always a good thing... just do not go down the shared hosting path haha... its horribly there... its kinda like in star wars where luck is tempted by the dark side path when he is chilling with Yoda...
Every good response should have a star wars reference... it is a good way to live life.