← Back to featured work

ValetUI

A native menu bar app for managing Laravel Valet sites, services, PHP versions, and local WordPress installs without reaching for Terminal.

Actively developed

ValetUI is actively developed and shaped through daily use. Ongoing improvements focus on making local Laravel Valet workflows clearer, safer, and faster without leaving the menu bar.

macOSSwiftUILaravel Valet

ValetUI started with a small daily frustration: Laravel Valet is wonderfully capable, but its everyday controls live entirely in Terminal. Restarting a service, switching PHP versions, or checking linked sites meant breaking focus for a command-line detour.

I built ValetUI as a native macOS companion that keeps Valet close at hand. From the menu bar, developers can see their environment at a glance and manage sites, services, PHP versions, sharing, diagnostics, and WordPress setup through a focused interface.

Challenge

A GUI for a command-line developer tool needs to feel trustworthy, not merely convenient. The challenge was turning Valet's scattered commands and configuration into clear states and safe actions, while accounting for the macOS realities a terminal often hides: missing PATH values, different Homebrew locations on Apple Silicon and Intel Macs, and noisy output from supporting tools.

Approach

I kept the app close to macOS conventions: a MenuBarExtra window gives each task a compact, focused home, while state-based routing avoids the flicker that came with a NavigationStack-driven panel. Where possible, ValetUI reads Valet's configuration files directly instead of parsing command output. The implementation stays deliberately lean—SwiftUI, AppKit, and Foundation only—with runtime Homebrew detection and a clear boundary around shell access.

Highlights

  • Shows live Valet status in the menu bar, with quick access to sites and service controls.
  • Creates complete WordPress installations in one flow: directory, database, configuration, admin account, and HTTPS.
  • Supports global and per-site PHP version switching across installed Homebrew versions.
  • Includes sharing, log viewing, subdomain checks, and diagnostics for troubleshooting local environments.
  • Uses Swift 6 strict concurrency with a single actor for shell access, keeping subprocess work isolated from the interface.
  • Validates site names before subprocess calls and passes passwords through environment variables rather than command-line arguments.

Outcome

ValetUI makes local Laravel Valet work feel more immediate. Routine actions are available in a click, while the deeper tools—WordPress setup, per-site PHP isolation, sharing, logs, and diagnostics—remain discoverable without asking developers to remember the right command. The project has grown through active use since June 2026.