Laravel Herd is a free, native development environment for Laravel and PHP on macOS and Windows. One installer gives you PHP, Nginx, Composer, the Laravel installer, and Node.js. Every project in your ~/Herd folder is instantly available at project-name.test. No Homebrew, no Docker, and no configuration files.
Remember your first Laravel setup? Install Homebrew, install PHP, fight with PATH, install Composer, install Valet, then discover that the PHP version is wrong for your client's project. That's an afternoon gone before you write a single line of code.
Herd turns that afternoon into about two minutes. It's the graphical setup recommended by the official Laravel documentation for Mac and Windows users.
In this Laravel Herd tutorial, you'll install Herd, create and serve a project, switch PHP versions per site, enable HTTPS, and decide whether Herd Pro is worth $99 a year. We'll also cover Herd vs. Valet and Sail so you can choose the right Laravel local development setup.
Key Takeaways
Laravel Herd is free and official. It bundles
php,composer,laravel,expose,node,npm, andnvm, and runs on macOS 12+ and Windows 10+.Zero-config sites. Any project inside
~/Herdis served automatically atfolder-name.test, whileherd linkadds projects from anywhere else.Per-project PHP versions take one command.
herd isolate 8.3pins a site to a specific version, whileherd use 8.5changes the global default.Herd Pro costs $99 per year and adds local MySQL, Postgres, Redis, and more, along with a mail inbox, dump viewer, log viewer, and automatic Xdebug.
Herd replaces Valet for most Mac users and imports Valet sites automatically. Sail and Docker remain better options on Linux and for projects that require exact production parity.
The developers featured in this article's examples are illustrative composites based on common Laravel scenarios.
What Is Laravel Herd?
Herd is a desktop app developed by Beyond Code in partnership with Laravel. It runs Nginx in the background, ships with its own PHP binaries, and handles local .test domains for you. The Laravel installation documentation describes it as "a blazing fast, native Laravel and PHP development environment for macOS and Windows."
Here's what you get out of the box:
Included in free Herd | What it does |
|---|---|
PHP (multiple versions) | Latest stable version by default (PHP 8.5 today), with older versions available in one click |
Nginx | Serves every site through a managed background service |
Local DNS |
|
Composer and Laravel installer |
|
Node.js, npm, and nvm | Front-end builds with Vite |
Expose | Shares a local site through a public URL |
HTTPS | Trusted local TLS certificates for each site |
Because Herd ships with prebuilt PHP binaries, it doesn't depend on Homebrew. That's the main reason it's faster to install and less fragile than older setups.
How to Install Laravel Herd
On macOS
Herd requires macOS 12 or later.
Download the DMG from herd.laravel.com and drag Herd into Applications.
Open Herd. During onboarding, it downloads the latest PHP version and installs a background service. You'll need to grant administrator permission so it can manage Nginx and dnsmasq.
If you've used Valet before, Herd detects it on first launch and automatically migrates your sites, certificates, and settings. Stop Valet first. Herd won't modify your Valet installation.
On Windows
Herd requires Windows 10 or later and administrator rights during setup.
Download the Windows installer from the Herd website and run it as administrator.
The installer adds a HerdHelper service that updates your hosts file and maps sites to
.testdomains.Herd creates a parked folder at
%USERPROFILE%\Herd.
Check That It Worked
Open a new terminal and run:
herd --version
php --version
composer --version
laravel --version
node --versionIf every command prints a version, you're ready.
Creating and Serving Your First Site
Herd parks the ~/Herd directory by default. Any project inside it is served at its folder name plus .test. Creating a new Laravel app takes four commands:
cd ~/Herd
laravel new my-app
cd my-app
herd openYour browser opens http://my-app.test. There's no php artisan serve process to keep running and no port to remember.
Linking Projects Outside ~/Herd
Keep your code somewhere else? Run herd link from the project folder:
cd ~/Code/client-portal
herd link # served at client-portal.test
herd link portal # or choose the name: portal.testYou can also park an entire folder with herd park ~/Code, so every project inside it gets a .test domain. Run herd links to see linked sites, including their URLs, paths, PHP versions, and HTTPS status.
Starting a new project anyway? StackMivo generates a complete Laravel app from a plain-English description. Clone it into
~/Herd, install the dependencies, and it will be available locally at a.testdomain.
Switching PHP Versions Per Project
This is where Herd saves the most time for freelancers and agencies juggling older client apps.
Change the global default for all sites:
herd use 8.4Pin one project to a specific version by running this command from its root folder:
cd ~/Herd/legacy-shop
herd isolate 8.2Other useful commands:
herd isolated # list isolated sites and their PHP/Node versions
herd unisolate # return this site to the global version
herd php:list # see installed and available versions
herd php:install 8.3 # install another versionYou can also manage PHP versions through the Herd UI using the PHP dropdown in the Site Manager.
Note that php in your terminal uses the global version. For commands that must match an isolated site's PHP version, run them through Herd. For example, use herd php artisan migrate or herd composer install to ensure they use the appropriate PHP binary.
Mei, a freelance Laravel developer in Singapore, maintains five client apps running PHP versions from 8.1 to 8.5. On her old Valet setup, she switched PHP globally whenever she changed projects and twice broke a Composer install by using the wrong version. After moving to Herd in April, she isolated each project once. Now, changing directories is the only context switch she needs to make.
HTTPS, Sharing, and Other Everyday Commands
Secure a site with HTTPS by running this command in the project folder:
herd secure # trusted TLS cert, site now at https://my-app.test
herd unsecure # remove the cert and HTTPS redirectLocal HTTPS matters more than it used to. OAuth callbacks, secure cookies, service workers, and some payment SDKs refuse to work over plain HTTP.
Share your local site with a client or webhook provider:
herd shareThis opens an Expose tunnel and provides a public URL. You'll need an Expose account the first time. It's handy for testing Stripe webhooks or showing a client work in progress. Treat that URL as public, and stop sharing when you're done.
Check logs quickly:
herd log nginxShare your setup with your team using a herd.yml file. Run herd init in a project, and Herd either applies an existing herd.yml or guides you through creating one. Commit the file, and your teammates can use the same PHP version, domain, and HTTPS settings.
Is Herd Pro Worth It?
Free Herd covers serving sites. Herd Pro adds the services most real applications need. According to the Herd website, Pro includes:
Services: Create and run MySQL, MariaDB, PostgreSQL, Redis, Typesense, Meilisearch, MinIO, and Laravel Reverb locally. Availability varies slightly between macOS and Windows.
Mail: A local inbox for each app, so test emails never reach real users.
Dumps: View
dump()anddd()output, along with query logs, in a separate window.Log viewer: Searchable logs that refresh automatically and open entries in your IDE.
Xdebug detection: Xdebug turns on automatically only when you need it.
Plan | Price | Includes |
|---|---|---|
Herd | Free | PHP, Nginx, |
Herd Pro | $99 per license per year | Everything above, plus services, mail, dumps, logs, and Xdebug detection |
Herd Teams | $299 | 10 Pro licenses plus license management |
There's no trial, but a 14-day money-back guarantee is available.
Our take: If you currently run DBngin, Mailpit, a Redis installation, and a log tail in four different windows, Pro can pay for itself quickly. If you only work on SQLite projects or already run databases in Docker, free Herd is plenty. Pro's dump window also pairs nicely with tools like Laravel Telescope for deeper request debugging.
Herd vs. Valet vs. Sail
Which Laravel local development setup should you use? Here's how Herd compares with the two most common alternatives.
Herd | Valet | Sail | |
|---|---|---|---|
Platforms | macOS, Windows | macOS only | macOS, Linux, Windows (via WSL2) |
Install | One app installer | Homebrew, PHP, Composer, then Valet | Docker Desktop plus a Composer package |
PHP source | Bundled binaries | Homebrew | Docker image |
Speed | Native | Native | Container overhead, especially file I/O on Mac |
Databases | Pro services or your own | Install separately | Docker containers included |
Production parity | Moderate | Moderate | High (same containers everywhere) |
GUI | Yes | No | No |
Cost | Free, Pro $99/year | Free | Free |
Herd vs. Valet
Herd builds on the same ideas as Valet: parked folders, .test domains, and link and secure commands. The difference is setup and maintenance. Valet relies on Homebrew PHP, which can break after a brew upgrade. Herd manages its own PHP, adds a GUI, supports Windows, and includes Pro tools. For most Mac developers, Herd is the easier choice today, and migration is automatic.
Herd vs. Sail
Sail runs your app in Docker containers. It's the better fit when you develop on Linux (Herd has no Linux version planned), when your team needs identical environments down to the database version, or when your production environment runs containers. Herd is faster and simpler for day-to-day development on Mac and Windows.
Many teams use both. Jonas leads a three-developer agency team in Berlin. They use Herd for daily development because pages load instantly and onboarding a new developer takes ten minutes. For one client with strict Postgres and Redis version requirements, they use Sail for that project only. A committed herd.yml keeps everyone's Herd settings in sync.
For more tools to round out your setup, see our guides to the best Laravel development tools in 2026 and the best Laravel ecosystem tools. When you're ready to deploy, our Laravel Forge pricing guide covers the next step.
Local setup done? Skip the blank project. Describe your app in plain English, and StackMivo generates the models, migrations, authentication, and admin panel. Then run it in Herd. Start free with StackMivo →
Frequently Asked Questions
Is Laravel Herd free?
Yes. Herd's core features are free, including PHP, Nginx, .test domains, HTTPS, and site sharing. Herd Pro costs $99 per license per year and adds databases, mail, dumps, logs, and Xdebug detection.
Does Laravel Herd work on Linux?
No. Herd supports macOS 12+ and Windows 10+, and the Herd team currently has no plans for a Linux version. On Linux, use Laravel Sail or a native PHP setup.
What is the difference between Herd and Valet?
Both serve Laravel sites on .test domains. Valet is macOS-only and depends on Homebrew PHP. Herd bundles its own PHP, adds a GUI, supports Windows, and offers Pro tools. Herd can automatically import your Valet sites.
Can I use Herd with non-Laravel PHP projects?
Yes. Herd also serves other PHP projects, including WordPress, Symfony, and plain PHP sites, using the same parked folders and .test domains.
How do I change the PHP version for one project in Herd?
Open a terminal in the project folder and run herd isolate 8.3, or specify another installed version. Run herd unisolate to return to the global version.
Do I need Docker with Laravel Herd?
No. Herd runs natively without Docker. You can still use Docker for specific services or use Laravel Sail for projects that need containers.
The Bottom Line
Laravel Herd removes the most annoying part of Laravel local development: setting it up and keeping it working. Install one app, drop projects into ~/Herd, and you get fast .test sites, per-project PHP versions, and HTTPS with just a few commands.
Start with free Herd. Upgrade to Pro when you're tired of juggling databases and mail catchers, and keep Sail around for Linux machines or projects that need exact production parity.
Generate your next Laravel app with StackMivo and run it in Herd today →