Valet vs. Homestead – php development on macOS

Share on facebook
Share on twitter
Share on linkedin

There are two popular ways to set up Laravel/php development environment on macOS: Valet and Homestead. Both are good for development, but their approach is different. Valet is a minimalistic, fast development environment, but Homestead offers a full vagrant virtual machine – with all it’s advantages and disadvantages. Let’s dive into the strengths and weaknesses of both.

Valet

Good

  • Easy to set up
  • Fast – it is basically just nginx with dnsmasq
  • No configuration is necessary when you add a new project, just create a folder in your the web root and you are ready to go
  • It starts automatically with the operating system
  • No need for provisioning/start up/ssh

Bad

  • You have to install all the other necessary services like php, mysql, mongodb etc manually, but it is easy to do on mac with Homebrew
  • If you have projects which requires different versions of php, switching between the php versions could be tricky. Update: since Laravel 5.7 it is easy to switch between php versions using the valet use php@version command.

Homestead

Good

  • It provides a full Ubuntu virtual machine
  • All necessary services are preinstalled
  • Easy to install other Linux services and binaries if necessary
  • Work on both macOS, Windows, and Linux, and the same development environment can be set up for every team member regardless of os.

Bad

  • It is slow. And sometimes even slower.
  • Every new project requires new entry in Homestead.yaml and /etc/hosts
  • Npm run dev runs extremely slow in vagrant, so it is better to run it outside, directly on mac, but all php commands (e.g. artisan) and composer should run in Homestead, which can be confusing sometimes
  • Setting up debugger requires some more effort compared to Valet (especially for php cli)

Both of these systems work well for php development, and as the documentation states these are intended for different audiences. It depends or your taste and your team’s needs which one suits you better. My choice is Valet.

Subscribe to our newsletter

Be first to read new helpful post

Share this post with your friends

Share on linkedin
Share on xing
Share on twitter
Share on facebook

Communian – COMING SOON

We at 42coders love meetups and think that they are a valuable asset to the community. And we willingly attend to them. Not to mention

2
Leave a Reply

avatar
1 Comment threads
1 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Daniel VernerJake Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Jake
Guest

Hey, good article, I’ve only recently started using Valet for Development, but I’m your article it says a con with Valet is switching PHP. I’m not sure if this is a new feature but from the docs it states -> ‘Valet allows you to switch PHP versions using the valet use php@version command. Valet will install the specified PHP version via Brew if it is not already installed:’ I’d turn that con into a pro now 🙂