Stable HTTPS domains for local development. No ports*. No /etc/hosts. No certificate warnings. One command and you're there.
curl -fsSL https://antra.iifelse.com/install.sh | bash
brew install ifelse-codes/antra/antrahttps://myapp.localhost) use ports 443/80, which need admin rights. The first run asks once (Use port 443? [Y/n]) and needs your password; the proxy then drops admin rights. Say no and Antra serves https://myapp.localhost:8443.curl -fsSL https://antra.iifelse.com/install.sh | ANTRA_VERSION=v0.6.6 bashantra run --domain myapp.localhost -- pnpm dev. That's it.
Local CA, SNI certs, zero browser warnings. One-time trust, then forget — no sudo needed (macOS uses your login keychain).
Visit https://myapp.localhost. No :5173. No :3000. Done. (The first run asks once to use port 443 and needs your password — say no and Antra serves :8443.)
Transparent WebSocket tunnel. Vite, Next, Rails, anything.
Run antra run N times. Each app gets its own domain. The daemon handles it.
Drop an antra.toml. Run antra dev. The whole team gets the same setup.
domain = "myapp.localhost"
[server]
command = "pnpm"
args = ["dev"]
port = 5173
| localhost:port | mkcert + Caddy | ngrok | portless | Antra | |
|---|---|---|---|---|---|
| Stable local HTTPS URL | — | Manual | ✗ public | ✓ | ✓ |
| No browser warning | — | Manual | ✓ | ✓ | ✓ (Linux: one certutil line) |
| Works offline | ✓ | ✓ | ✗ | ✓ | ✓ |
| Traffic stays on your machine | ✓ | ✓ | ✗ | ✓ | ✓ |
| No cloud account | ✓ | ✓ | ✗ | ✓ | ✓ |
| Any language / runtime | ✓ | ✓ | ✓ | ✗ Node 24+ | ✓ |
| Runtime to install | — | Caddy | ngrok | Node 24+ | none |
| HMR / WebSocket | ✓ | Config-dependent | ✓ | ✓ | ✓ |
| Multi-app routing | DIY | Config file | Extra tunnels | ✓ | antra run × N |
| Monorepo / LAN / phone | DIY | Config file | ✓ | ✓ | Roadmap |
| HTTP/2 | — | ✓ | ✓ | ✓ | ✗ |
| Asks before changing your machine | n/a | n/a | n/a | ✗ | ✓ |
Install Antra. Run your app. Visit a real URL. That's the whole product.