Local PHP development for Linux and macOS. Automatic .test domains, per-project PHP, one-command TLS. Rootless Podman, open source.

Joined September 2026
Queue workers, the scheduler, Horizon, Reverb, a Stripe listener and a Vite dev server, multiplied by every project you have open, add up to a lot of CPU and memory for code nobody is using. Lerd's idle-suspend watches each site for activity: web requests, CLI commands, AI tool calls and file saves. After a timeout it suspends that site's workers, and brings them back the moment you load a page or run a command. You keep every project linked and ready, and your laptop stays cool. #Laravel #Horizon
4
15
319
Freelancers and agencies end up with dozens of local sites, and a flat list stops being useful around the twentieth one. lerd groups sites into workspaces. Make one per client or per project, drag sites into it, and the dashboard, the TUI and the CLI all show your sites grouped. Fold the workspaces you aren't working on. Mark a workspace private and streaming mode keeps it off your screen when you share it. #webdev #freelance
2
2
1
33
1,033
Sometimes one site needs one nginx rule the others don't: a larger upload limit, a rewrite, a header, a location block. In lerd each site and each worktree can carry its own nginx override, and you edit it from the address bar in the dashboard, with a proper code editor. lerd reloads nginx when you save, and Reset puts its generated config back if you go too far. The override follows the site through domain renames, and frameworks can ship their own nginx rules in the store.
1
9
362
PHP put out an advisory yesterday: keep session.upload_progress.enabled=0 until the next bugfix release, to close an unlikely RCE path left over from this week's security fixes. In Lerd that's one line in the shared ini, under System > PHP. It applies to every PHP version at once, and it's a real php.ini setting, which matters because the advisory says ini_set() and .user.ini don't count. The versions in the screenshot are already the patched ones, the new builds arrived without a Lerd release.
11
446
git pull is easy. What comes after it is where the afternoon goes: a new package, a changed lockfile, two new migrations. In lerd 1.37, pulling or switching branches from the dashboard first compares the two trees and shows what's coming in: the commits, the files, and the steps the change needs. composer install, your JavaScript install and the framework's migrate command are each ticked when the incoming changes call for them. Before anything runs, lerd snapshots the database, tagged with the branch you're leaving, so a failed migration is one click from undone. Uncommitted work that would be overwritten holds the pull back.
2
10
293
Tinker is the fastest way to poke at a Laravel app, and lerd puts it in the dashboard. The Tinker tab is a PHP REPL with your application booted, on the site's own PHP version. It has a real editor with autocompletion, shows the result of each line next to it, renders queries inline, and goes full screen when you need room. Save the scripts you run often as snippets: lerd reads them from your project, from your home folder, and from .tinkerwell/snippets, so existing Tinkerwell snippets just show up. #Laravel #PHP
10
368
When a page feels slow you usually guess: is it the database, the PHP code, or the server? Now you open the request and see. Every recent request in the dashboard has an Inspect button, and it opens on a summary of what that request cost: the response time nginx measured, the peak memory PHP used, the time split between your app and its queries, and how long it waited in the PHP-FPM queue for a free worker. No package to install and no code to change. Turn on debug capture and every request is ready to inspect.
15
527
The PHP security team is giving advance notice: Upcoming security release Wed, Oct 21st 2026, 14:00UTC, two critical vulnerabilities, both rated CVSSv4 9.2. PHP users are encouraged to prepare to update. Earlier release if details become public or active exploit evidence.
344
4,176
1,254
18,604
7,067,762
Everything about a site on one screen. Services, workers, request timing, the slowest routes, what's running and what isn't. No prompt box, no wizard, no account. Your agent stays in your terminal and reads the same data over MCP. Lerd is free and open source
5
4
60
71,866
Lerd 1.37 is out. The part I'm most happy about: a request now carries one id from nginx to PHP to the browser. Open a recent request and you see everything it ran on a timeline, including what the page itself reported back. Your AI assistant gets the same view over MCP, and it starts with what went wrong. Services sleep when nothing uses them. A request to a sleeping site is held open until things are up, then gets the real response. Nothing ever sees a waking page. The dashboard got a lot lighter, on a busy machine it went from over a gigabyte to under a hundred megabytes, because the debug buffer lives in SQLite now instead of memory. Also in this one: fetch, pull, push and branch switching from the site header, with a database snapshot before you move. Secrets from 1Password, Doppler, Infisical and the rest without touching .env. DNS built into Lerd, no more dnsmasq. And a rebuilt TUI that draws in your terminal's own colours.
6
1
1
46
1,465
Most PHP projects need more than PHP: a database, a cache, a mail catcher, search, object storage. In lerd each of those is a service you add in a click: MySQL, MariaDB, PostgreSQL, Redis, Valkey, Memcached, Meilisearch, Typesense, Elasticsearch, OpenSearch, Mailpit, RustFS, RabbitMQ and more. Each runs as a rootless container, several versions can run side by side, and lerd writes their hosts, ports and credentials into your site's .env. Presets live in a public store, so new services reach every install without waiting for a release. #MySQL #PostgreSQL
4
1
15
529
"It works on my machine" stops being helpful when it doesn't work on your machine. lerd's site doctor runs the health checks a site's framework defines, things like pending migrations, a missing app key, a broken storage link, an env file pointing at a service that isn't running, or a database that doesn't exist yet. Findings appear as each check finishes. Where a fix is safe, it is one click away: create the missing database, start the service, repair the vhost. For the rest you get a clear explanation, or a "Copy for agent" button that hands the problem to your AI assistant. #Laravel #PHP
2
13
401
Watch Claude Code set up a Laravel project, open a feature branch with its own database, and fix an N+1 query, all through Lerd. Every step shows up live in the dashboard. One take, no cuts. Setup: from a fresh clone to https://shop.test with a trusted certificate, MySQL, Redis, migrations, seed data and Vite running as a worker. Worktree: the feature branch gets its own HTTPS subdomain, a Vite worker and a database cloned from main, with the branch's new migration on top. Main stays untouched. Debugging: Lerd's request inspector flags an N+1, 52 queries with 48 of them the same category lookup. Copy for agent hands it to Claude, which adds the eager load, and the next request runs 5 queries. #Laravel #PHP
7
7
1
52
60,876
Your AI coding assistant is only as useful as what it can see and do. Lerd gives it the whole local environment. Lerd ships an MCP server, and one switch in the dashboard registers it with Claude Code, Cursor, Codex, Gemini, Copilot, Windsurf, Junie and opencode. Through it the assistant can run artisan and composer on the right PHP version, start services and workers, read logs, inspect slow requests and set up git worktrees with the right database. Instead of pasting error output into a chat, the assistant reads it directly. #MCP #AI
4
3
16
686