cretueusebiu/valet-windows
Valet for Windows brings the Laravel Valet experience to Windows: a fast, minimal local development environment powered by Nginx and PHP. Easily serve Laravel and other PHP sites, manage parked and linked paths, and use simple CLI commands instead of configuring a full stack manually.
Architecture fit. This is not an application dependency — it is developer-environment tooling. Nothing in a Laravel codebase references it, no composer.json entry is created, and it ships no service providers, facades, or config that touch production code. Architecturally that is the safest possible category: adoption is reversible, blast radius is a developer workstation, and it cannot introduce a runtime dependency into the deployable artifact. The fit question therefore reduces to environment parity: does the stack it provisions (Nginx + PHP-FPM + MySQL/MariaDB + Redis + MailHog, projects served at *.test over HTTP/HTTPS) match what our applications actually run against in staging and production? Where production is Nginx/PHP-FPM, Valet Windows is a reasonable local mirror. Where production is Apache, or where the team already standardizes on containerized parity (Docker Compose / Laravel Sail), Valet Windows is a competing convention that would fragment the fleet rather than unify it.
Integration feasibility. Mechanically simple and well understood: a one-command installer that elevates, writes the Windows hosts file, registers Nginx and database services, adjusts PATH, and exposes a valet CLI (park, link, secure, share). Onboarding cost per developer is measured in minutes. The feasibility risks are not in the install but in the preconditions: local admin rights, antivirus/EDR tolerance of a newly installed background service listening on ports 80/443, and coexistence with anything already bound to those ports (IIS, Skype, prior XAMPP/Laragon/WAMP installs). In a managed corporate Windows fleet, those preconditions are policy questions, not technical ones, and they are where most rollouts stall.
Technical risk.
valet secure generates and trusts a local CA — distributing and later revoking that trust across machines needs an owner. valet share tunnels a local site to a public URL, which is a genuine data-egress risk if used with production-like data and needs an explicit policy.Key questions.
valet share permitted, and if so, under what data-handling constraints?Stack fit. Adopt only if three conditions hold: the team is Windows-native, production is Nginx/PHP-FPM (or we accept the divergence knowingly), and we do not already have a containerized local standard that developers rely on. If any of those fails, the correct answer is to standardize on the existing tool rather than add a second environment manager. Valet Windows is a convention, and two conventions is worse than one imperfect one.
Migration path. Treat this as a tooling migration with a defined cutover, not an install:
hosts entries are the dominant first-day failure.Compatibility. Windows 10/11; PHP through 8.4 as of 2.5.3; MySQL/MariaDB, Redis, and MailHog provisioned as Windows services. Verify explicitly against: Windows Home (no Hyper-V, affects any WSL2 fallback), corporate EDR/antivirus whitelisting, non-C: install locations, path names containing spaces, and coexisting VPN clients that intercept local traffic. Also verify that the provisioned MailHog version is compatible with the mail assertions our test suites make — a local mail sink that behaves differently from CI's is a subtle source of false-green tests.
Sequencing. Pin a specific Valet release and a specific PHP minor per project, recorded in the repo (e.g. a .valet-php convention or README), so switching is deliberate rather than incidental. Land the pilot and documentation before broad rollout. Do not couple this to any application or framework upgrade — it is orthogonal and should not gate or be gated by runtime work.
Maintenance. Ongoing cost is low but non-zero and largely invisible: periodic valet upgrades, PHP minor bumps, service health after Windows updates, and re-issuing local certificates when they expire. Someone must own "the local dev environment" as a named responsibility, otherwise it degrades into per-developer snowflakes. Because the tool auto-updates services underneath the developer, an upgrade can change Nginx or PHP behavior without any repository change — an unusual property that argues for pinning versions and upgrading deliberately.
Support. Expect a front-loaded support burden concentrated in the first two weeks per cohort: port conflicts, hosts-file permissions, certificate trust prompts, and EDR quarantine. After that, support drops to near zero for developers who stay on the rails and spikes for anyone changing PHP versions or adding a second stack. Community documentation is reasonable but generic; internal runbooks are what actually reduce tickets. There is no commercial support tier, so all escalation is internal or upstream issue-tracker-based.
Scaling. Scales trivially with headcount — it is a per-workstation tool with no shared infrastructure and no production footprint, so there is no capacity, throughput, or cost dimension. The scaling risk is consistency: the more developers and the more projects, the more PHP versions, service configurations, and certificate states exist in the wild. Per-site PHP switching is the specific feature that makes drift cheap and therefore likely. Mitigate with per-repo version pinning and a CI-aligned PHP matrix rather than by restricting the tool.
Failure modes.
*.test resolves to the wrong server. Mitigation: decommission-first migration and a documented health check.valet share. A developer exposes a local site publicly with real data. Mitigation: explicit policy and, ideally, technical restriction.Ramp-up. Effectively zero for a developer who has used Laravel Valet, Laragon, or any *.test-style local stack: park/link/secure are a five-minute explanation. Budget roughly half a day for first-time setup including troubleshooting on a managed machine, and invest an hour in a written runbook covering PHP version switching, certificate trust, port conflict diagnosis, and uninstall. The TPM-level ramp-up is the policy work — EDR sign-off, CA trust policy, and share rules — which is small but must be scheduled, because it is the only part of this adoption that cannot be fixed by a developer at their own desk.
How can I help you explore Laravel packages today?