Automatically switches a site to a PHP build with SQLite and Postgres drivers when its .env needs them
macOS desktop app
Corral
Round up your whole dev stack. One menu bar, zero wrangling.
Overview
What Corral is and why it exists.
Corral is a macOS menu bar app that runs a complete local PHP development environment: multiple PHP and Node versions, nginx, HTTPS on .test domains, MySQL, a mail catcher and a built-in database browser. It replaces Laravel Herd, DBngin and TablePlus for everyday work, in one signed, self-updating app for Apple silicon and Intel Macs.
Highlights
Why people love Corral.
Takes over an existing Laravel Herd setup in one step, sites and HTTPS included
Imports DBngin's MySQL data in about a second
Database browser speaks the MySQL protocol directly, with no client tools needed
Recovers services after sleep, crashes and reboots
Universal app for Apple silicon and Intel Macs
Full uninstall that removes everything it set up on the Mac
The story
From problem to product.
The problem
A local PHP setup on a Mac usually means juggling several tools: one for PHP and web serving, another for databases, another for browsing data, plus Homebrew packages that break on upgrades. Each has its own settings and its own idea of which PHP or Node version a project uses, and the paid tiers lock away features like per-site versions and mail catching.
The approach
One menu bar app that owns the whole stack. Park a folder and every project inside gets its own HTTPS .test address. Each site picks its PHP and Node version, and the terminal's php, composer and node follow whichever project you're in. MySQL servers, a database browser, a mail catcher and logs live in the same window, with settings applied live. First launch sets up domains and certificates with a single password prompt, and the app updates itself.
Under the hood
How it came together.
Scope
What the product covers, end to end.
- Site management: parked folders, linked sites and proxies to dev servers such as Vite
- PHP 8.0 to 8.5 side by side, with per-site versions
- Node.js versions with an nvm-compatible command and .nvmrc support
- Local certificate authority and automatic HTTPS for every site
- Built-in DNS server for .test domains
- MySQL servers with backups, imports, cloning and one-click .env setup
- Paddock, a database browser for MySQL and MariaDB
- Mail catcher with a web inbox and a Mailpit-style API
- corral command-line tool
- Signed, notarized releases with Sparkle auto-updates and a Laravel release website
Technology
How it is built and kept running.
- Flutter and Dart for the app and its services
- Swift for the menu bar, Keychain and certificate trust
- nginx built from source as a universal binary
- Static PHP builds from static-php-cli
- A MySQL and MariaDB wire-protocol client written in Dart
- DNS and SMTP servers written in Dart
- Sparkle 2 with EdDSA-signed updates
- Laravel 13 for the release website and update API
Role & delivery
What NashSaint designed, built and shipped.
- Product design
- macOS app development
- Backend and systems programming
- Release engineering: code signing, notarization and auto-updates
- Web development for the landing page and admin
Outcomes
The difference it makes.
- 01 Replaced Herd, DBngin and TablePlus in my own daily work
- 02 Served 16 of 17 existing Herd projects unchanged on the first run
- 03 Ships as one notarized download that updates itself through the website
Need a hand?
Questions about Corral?
Send a support request and you will hear back by email. Privacy and terms are always one click away.