In May 2026, I published an article here about lerd, a local PHP development environment I built for Linux because Laravel Herd does not support Linux and I got tired of the alternatives. At the time, I had a handful of stars and was not sure anyone would care. Five months later, Lerd has 780+ GitHub stars, 16 external contributors, users in 40+ countries, a community of developers in Brazil who adopted it and started contributing, and a release cadence that has shipped 30 versions. I want to write about what actually happened, what worked, what completely failed, and what I did not see coming. What I built and why The original problem has not changed. Laravel Herd is the best local PHP dev environment available, and it runs only on macOS and Windows. Herd's own website says there are currently no plans for a Linux version. DDEV and Lando are solid tools, but both depend on Docker Desktop. And XAMPP is still from another decade. lerd runs everything as rootless Podman containers. No Docker Desktop, no background daemon running as root, no licensing costs. On Linux it integrates natively with systemd user services, so PHP-FPM, queue workers, Reverb, and everything else start automatically at login, restart on failure, and log to journald. On macOS it uses launchd the same way. The core workflow is automatic .test domains with one-command HTTPS, per-project PHP and Node isolation, one-click services, and a built-in web UI installable as a PWA. What grew The feature set expanded more in five months than I planned for a year. Debug window. Every dump(), dd(), and SQL query is intercepted and streamed to the dashboard, TUI, and MCP tools. N+1 detection, slow query flags, outgoing mail, views, events, jobs, and HTTP, all grouped per request. No package to install, no config to write, it just works for Laravel and Symfony. MCP server. lerd now ships a full MCP server compatible with Claude Code, Cursor, GitHub Copilot, Gemini CLI, Codex CLI, JetBrains Junie, Windsurf, and Google Antigravity. You can run migrations, toggle services, switch PHP versions, check logs, and diagnose slow routes through natural language in your AI session. The route_timing and optimize_route tools pair a slow route from real traffic with its N+1 queries and CPU hotspots so an agent can diagnose it without reading code. Git worktree isolation. Each branch gets its own subdomain and its own isolated database. Switch branches without migrations bleeding into each other. Framework store. Framework definitions, nginx config, env format, required services, and worktree setup all live in versioned YAML outside the binary. Magento, Statamic, Drupal, WordPress, Symfony, and others come up correctly without any configuration. New frameworks ship without a release. Platform expansion. macOS one-liner install. NixOS support via a community-maintained flake. Fedora Silverblue, Bazzite, and Kinoite as first-class targets. A native Flatpak desktop app with desktop notifications. Database management. Every service now has a Databases tab in the dashboard. See what is inside the running container, create, drop, export to SQL, import, snapshot, copy a connection string, open an admin tool. One click instead of CLI commands. Idle-suspend. Workers pause after a configurable idle timeout and resume on the next request. On macOS, this makes a meaningful difference to battery and CPU when you have multiple projects sitting idle. The most unexpected part of this was how much the community shaped the product. The first external pull request arrived in week two without me reaching out to anyone. A developer found lerd, tried it, hit a problem, fixed it, and submitted the fix. That was the moment I stopped thinking of this as a personal tool. The top three markets by GitHub stars are Brazil, Indonesia, and Bangladesh, not the US or UK. I added Portuguese and Indonesian translations early on because it was the right thing to do. A community contributor submitted Turkish after that. Each language opened a community I had not targeted. The NixOS package came from a user named Andrew who emailed me saying he had figured out how to package lerd for NixOS and offered to maintain it under the project organization. None of this was planned. All of it happened because people found something useful and wanted to make it better. What failed I tried Hacker News three times. My account was flagged as too new the first time. The second and third posts went nowhere. Hacker News works when you have an established account and the community already knows your name. I have neither. X generated almost no traction. Without an existing audience there is no amplification. Posts into a void stay in a void. Several forum posts on communities like Laracasts went unnoticed. The traffic is too low for developer tooling posts to gain traction. I expected organic growth to kick in automatically after a certain number of stars. It does not work that way. Before around 500 stars almost nothing happens without active promotion. The baseline organic rate without any effort is about three to four stars per day. A single post on the right community or a single creator sharing it can mean seventy stars in one day. What worked A single direct message to Povilas Korop at Laravel Daily, not a newsletter pitch, just a reply to one of his posts on X. He shared it on social media. His social posts drove more stars in one day than all my own posts on X combined. Targeting communities precisely. A generic post about a PHP dev tool goes nowhere. A post on r/laravel framed specifically for Laravel developers who are stuck on Linux with a concrete comparison to Herd gets 74 upvotes and stays on the front page long enough to matter. Responding to every GitHub issue within hours. The first ten external contributors came because I replied the same day. Speed of response signals that the project is alive and that the maintainer cares. In open source that matters more than almost anything else. Shipping fast. Thirty versions in five months as a solo developer working evenings and weekends required a sustainable pace. Picking Go for the binary meant no dependency hell. Writing clean abstractions early meant features could be added without rewriting what was already there. The category is real now When I published the original article in May the category was effectively empty on Linux. By July several competing tools have appeared targeting similar ground, which is the clearest possible signal that the problem is real and the demand is there. Where lerd is now The immediate focus is stability, compatibility, and making the onboarding experience as smooth as possible. The framework store means new language and framework support ships without a binary release. The MCP integration keeps improving as AI coding workflows mature. Windows support is on the roadmap. It is a significant engineering effort because the service management layer needs to be written for a third platform, but it is the most requested feature from users who are stuck on Windows. If you want to try lerd the website is at lerd.sh and the code is at github.com/lerd-env/lerd. If you find it useful a star on GitHub helps more than you might expect for a solo open source project. Issues, pull requests, and honest feedback are always welcome.
Five Months of Building an Open Source PHP Dev Tool: What Grew, What Failed, and What Surprised Me
Full Article
Original Source
Read the full article at Hackernoon →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.