Portless
Para acceder a tus apps locales con URLs estables y nombre (https://miapp.localhost) en vez de recordar puertos
CLI que sustituye los puertos de localhost por URLs con nombre y HTTPS para desarrollo local
Notas y contexto
Qué es
Portless es una herramienta de línea de comandos creada por Vercel Labs que reemplaza los puertos numéricos de localhost por URLs estables con nombre, como https://miapp.localhost. Está escrita en TypeScript sobre Node.js y se publica bajo licencia Apache-2.0. Levanta un proxy inverso HTTPS en el puerto 443 que reenvía cada petición a tu aplicación, que sigue corriendo en un puerto local cualquiera.
Para qué sirve
- Acceder a tus servidores de desarrollo por nombre (
https://miapp.localhost) en lugar de recordar puertos como 3000 o 5173. - Tener HTTPS con HTTP/2 en local sin configurar certificados a mano: Portless genera y confía una CA propia en el primer arranque.
- Organizar varios servicios de un monorepo con subdominios (
api.miapp.localhost,docs.miapp.localhost). - Distinguir worktrees de Git automáticamente, prefijando el nombre de la rama como subdominio.
Cuándo usarlo
- Cuando trabajas con varias apps o servicios a la vez y los puertos numéricos se vuelven difíciles de recordar.
- Cuando necesitas HTTPS en local (por ejemplo, para cookies seguras, OAuth o APIs que exigen contexto seguro) sin montar mkcert o un proxy manual.
- En monorepos con varios frontends y backends. Alternativas conocidas son mkcert (solo certificados) o Caddy/local-ssl-proxy si prefieres configurar el proxy tú mismo.
Ejemplo
Instalación global y arranque de una app:
npm install -g portless
# Lanza tu comando de dev a través del proxy con nombre
portless miapp next dev
# -> https://miapp.localhost
Si lo ejecutas sin comando, usa el script dev de tu package.json. Puedes fijar el nombre con un archivo portless.json:
{ "name": "miapp" }
Puntos clave
- Proxy HTTPS con HTTP/2 en el puerto 443 y generación automática de una CA local de confianza.
- Infiere el nombre de la app desde
package.json, la raíz de Git o el directorio; admite subdominios y TLD personalizado (--tld test). - Respeta
PORTen frameworks como Next.js, Express o Nuxt e inyecta los flags adecuados en los que lo ignoran (Vite, Astro, React Router, Angular, Expo). - Detección de worktrees de Git para separar ramas por subdominio.
Ten en cuenta
- Requiere Node.js 24 o superior.
- Para enlazar al puerto 443 necesita elevarse con sudo en macOS y Linux; valora si te conviene en tu entorno.
- Está en versiones 0.x (v0.14.0), así que la API y el comportamiento pueden cambiar entre versiones. Si solo necesitas certificados locales y no el proxy con nombre, mkcert puede ser suficiente.