Laravel Herd Reference Guide

A reference guide to Laravel Herd: a native, containerless local development environment for macOS and Windows.

What Herd is

Herd is a local development environment for PHP and Laravel, built by the Laravel team. It runs PHP and nginx as native background services rather than inside Docker containers, so a project just needs to live in a watched folder to be served — no docker-compose up, no container rebuilds after a PHP extension change. It's a native alternative to Sail (Docker-based) and Valet (Herd's own spiritual predecessor, macOS-only and CLI-driven), with a menu bar / system tray app on top for managing sites and PHP versions without touching the terminal.

It's available for both macOS and Windows, which matters since Valet was always Mac-only — Herd is the closest equivalent Windows previously lacked.

Serving a site

Herd watches a configured parent folder (e.g. ~/Herd), and any project inside it is automatically served at <folder-name>.test — no manual site registration:

~/Herd/iangunter   →   https://iangunter.test

A project outside that folder can still be picked up with herd link run from the project root, which registers it under its own .test domain without moving it.

HTTPS by default

Every .test site gets a locally-trusted TLS certificate automatically — Herd manages its own local certificate authority and adds it to the system trust store on install. That replaces what would otherwise mean manually running mkcert or generating a self-signed cert and clicking through browser warnings, and it's what lets local development mirror production behavior for anything that depends on HTTPS (secure cookies, HSTS, mixed-content rules).

Per-site PHP versions

Herd installs multiple PHP versions side by side and lets each site pin its own, independent of the others — useful when one project targets PHP 8.1 for a legacy constraint while another uses 8.3. The version is set per-site from the Herd UI (or via herd use 8.3 from the project directory) and takes effect without touching system PATH or reinstalling anything.

Built-in dump and mail viewers

Herd includes a lightweight dumper that intercepts dump() and dd() calls and displays them in its own window instead of inline in the browser response — handy for inspecting values during an AJAX request or a queued job where there's no HTML response to dump into. It also bundles a local mail catcher, so mail sent with the log or smtp (pointed at Herd's catcher) driver can be inspected without a real mail provider, similar in spirit to Mailtrap or MailHog but with zero configuration.

Herd Pro

The free tier covers everything above. Herd Pro is a paid tier that adds extras like local Redis/MySQL/Postgres services managed through the same UI, Xdebug toggling per site, and a log viewer — useful for skipping a separate Docker Compose setup for a project's database, but not required for the core "serve a Laravel app locally" workflow.

When to reach for Docker/Sail instead

Herd's native-services model is faster and simpler for a single developer, but it doesn't give the exact environment-parity guarantees a container does — two developers on Herd could still have subtly different system-level dependencies. A team that needs every developer (and CI) running byte-identical service versions, or that already standardizes on Docker for deployment, usually gets more consistency from Sail despite the extra overhead.