FAQ
Why no Docker?
Section titled “Why no Docker?”Because on a Mac, Docker means a Linux VM, and a Linux VM means a filesystem boundary between your editor and your code. That boundary is where the latency comes from, where the file watchers stop firing, and where a large WordPress site goes from fast to tolerable.
rexenv runs the same software — nginx, PHP, MySQL — as native macOS binaries, in the same
filesystem your editor is already in. No VM to size, no daemon to keep running, nothing to
docker compose up before you can work.
The trade is real and worth naming: you do not get “the exact same image as production”. If byte-identical parity with a Linux container is your requirement, use the container.
Is it free?
Section titled “Is it free?”Yes.
Why does macOS say the app is from an unidentified developer?
Section titled “Why does macOS say the app is from an unidentified developer?”The build is ad-hoc code-signed and not yet notarized by Apple. Notarization is a separate step from signing and it is on the list, but it is not done, and saying otherwise would be a lie you would discover at the first double-click.
Installing with Homebrew avoids the dialog entirely, because the cask removes the quarantine attribute for you. See rexenv won’t open.
Windows? Linux?
Section titled “Windows? Linux?”Not yet, and there is no date.
This is not vapour-ware hedging: the entire codebase is already structured for it — every OS-specific operation sits behind a platform trait, and the Windows and Linux implementations exist as explicit stubs rather than as an assumption that macOS is the only platform. Adding an OS means filling those in. It still has to actually be done.
Will it fight the dev environment I already have?
Section titled “Will it fight the dev environment I already have?”It tries hard not to.
- Its ports are deliberately offset from the usual defaults. Mailpit sits on 11025 and 18025 rather than 1025 and 8025, MySQL on 13306 rather than 3306, so a standalone Mailpit, a MailHog, or another local environment’s copy never collides.
- It never touches a Caddy, nginx or MySQL you installed yourself. It manages only the binaries it downloaded, and it identifies its own processes rather than assuming anything listening on a port is its own.
- Ports 80 and 443 are the exception — those cannot be offset, because that is what a URL without a port number means. If something else holds them, rexenv names what is holding them instead of failing quietly.
Can I migrate from Valet or Herd?
Section titled “Can I migrate from Valet or Herd?”Yes — scan, review, import sites, copy databases, and optionally rewrite the connection config, with a diff shown and a backup taken first. Every stage is reversible and the source environment stays strictly read-only throughout: rexenv reads your Valet or Herd setup and never writes to it.
What happens to my sites if I quit rexenv?
Section titled “What happens to my sites if I quit rexenv?”They keep serving. Closing the app stops nothing — the services outlive it, and rexenv adopts them again when you reopen it. The DNS keeps answering too.
Tunnels are the deliberate exception: a public tunnel dies with the app, because a share you have forgotten about is a share you did not consent to.
Does anything phone home?
Section titled “Does anything phone home?”The app downloads its components from their upstreams on first use, checksum-verified. Beyond that it does not report usage, and the local certificate authority it creates never leaves your Mac.
This website uses Cloudflare Web Analytics, which is cookieless and collects no personal data — which is also why there is no cookie banner on it.
Why is PostgreSQL the only thing that needs macOS 26?
Section titled “Why is PostgreSQL the only thing that needs macOS 26?”Because its pinned builds are compiled for it. Every other component works on macOS 15. It is an upstream constraint rather than a design decision, and it is the one place the stated floor and the actual floor differ — which is why it is a badge on every PostgreSQL row rather than a footnote.
Where does everything live on disk?
Section titled “Where does everything live on disk?”~/Library/Application Support/dev.rexenv.rexenv/ — sites, databases, downloaded components
and settings. Linked sites are the exception: those stay wherever you keep them, and rexenv
serves them in place.