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.



  • 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


  • 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.



  • 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.


  • 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
composer Blog Title Image

10 Tips for PHP Composer

  1. Add the composer.lock and the composer.json to Git.

Composer install will install all the packages you have defined in your composer.lock file.

Leave a Reply

3 Comment threads
1 Thread replies
Most reacted comment
Hottest comment thread
4 Comment authors
AltynbekDean KaplanDaniel VernerJake Recent comment authors
newest oldest most voted
Notify of

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 🙂

Dean Kaplan
Dean Kaplan

Great article .Thx.

1-If one is doing API development can that be done with Valet. (or is that just a PHP thing when it gets down to it)?

2-Any wrinkles on database with Valet?



I wrote instructions on how to switch between PHP versions in Laravel Valet: