Blog
Desarrollo Web 23/04/2026

Mi setup de desarrollo: Windows, WSL y ningún Mac

Sin Mac, con dos monitores y un mini PC en el despacho, y un portátil a secas en casa. Windows por fuera y Linux por dentro. Mi setup actual y el principio que lo gobierna todo, mínima fricción para cambiar de proyecto. Bromas sobre el Mac incluidas.

Con los años he cambiado de monitores, de terminal y hasta de forma de guardar los secretos de los proyectos, pero mi principio de trabajo sigue siendo el mismo: mínima fricción para cambiar de proyecto. Trabajo en varios a la vez, y cada minuto que pierdo "preparándome para trabajar" es un minuto que no estoy produciendo.

Este es mi setup actual. No es una recomendación universal, es lo que a mí me funciona después de muchos años de probar cosas.

No, no tengo un Mac

Empiezo por la confesión que más bromas me ha costado en la comunidad de desarrollo: no uso Mac. Nunca lo he necesitado. Me han enseñado pegatinas de manzana, me han mandado memes, y sigo aquí, tan feliz con mi PC.

Mi razón es práctica: con WSL (el subsistema Linux de Windows) tengo un Linux completo dentro de Windows (el mismo entorno que mis servidores) con hardware que elijo yo, amplío yo y pago a precio de PC. Cuando el entorno de desarrollo es idéntico al de producción, la discusión del sistema operativo del escritorio se vuelve estética. Y en estética no me meto: cada cual con su cacharro.

Pantallas (y las máquinas que las mueven)

Durante una época usé un monitor en vertical para leer código: más líneas a la vista, menos scroll. Gustaba más de lo que servía: al final giraba la cabeza más que el monitor.

Hoy mi despacho son dos monitores (un ultrapanorámico curvo para el código y otro al lado para navegador, terminal y logs) movidos por un mini PC Minisforum HX90: una caja del tamaño de un libro que rinde como una torre y no hace ruido.

Mi despacho real: monitor ultrapanorámico curvo y segundo monitor, movidos por un Minisforum HX90

Y cuando estoy en casa, un portátil a secas, sin pantalla externa ni periféricos. ¿La lección de estos años? La productividad no vive en el cristal ni en el tamaño de la máquina: vive en que el entorno sea el mismo en todas partes. Si mi flujo solo funciona con tres pantallas, mi flujo está roto.

El trío: Windows + WSL + VS Code

Mi día a día entero pasa por tres piezas:

  • Windows como escritorio: drivers sin dramas, ofimática, y las herramientas de diseño cuando tocan.
  • WSL con Ubuntu como sala de máquinas: ahí viven Docker, los repositorios, zsh y todo lo que se ejecuta.
  • VS Code con Remote WSL como puente: el editor corre en Windows, el código y la terminal en Linux, y ni me acuerdo de la frontera.

La terminal es zsh, y ahí llega la parte que de verdad me ahorra tiempo cada día.

Aliases: mi memoria externa

Tengo un repositorio interno de documentación y utilidades que se carga en cada terminal que abro. Un script recorre el repo y carga automáticamente cada archivo .alias que encuentra: uno por proyecto, uno por herramienta. Resultado: cada proyecto se arranca, se prueba o se despliega con un comando corto que no tengo que recordar: está escrito una vez, bien, y para siempre.

Ejemplos reales de mi día a día:

  • Levantar cualquier proyecto con su Docker, sus túneles y sus variables: un alias.
  • pso: un visor de procesos con colores que me dice de un vistazo qué se está comiendo la máquina (Docker, Node, navegadores...).
  • Cada proyecto tiene su puerto fijo documentado: el 8390 siempre es la web, el 8181 siempre es la tienda. Nada de "¿en qué puerto lo dejé?".

Puede parecer exceso de orden. Es lo contrario: es pereza bien invertida. Cada alias son diez minutos de escribirlo una vez contra treinta segundos perdidos cien veces.

La caja de herramientas

Las pequeñas piezas que, sumadas, marcan más diferencia que cualquier monitor:

  • oh-my-zsh + Powerlevel10k: el prompt me enseña rama de git, estado y errores sin pedirlo. La terminal como salpicadero, no como caja negra.
  • zsh-autosuggestions: me propone el comando completo según mi historial mientras tecleo. Flecha derecha y listo.
  • zsh-syntax-highlighting: el comando se pinta en rojo si está mal antes de pulsar enter. Parece poco; ahorra un disgusto al día.
  • you-should-use: mi plugin favorito, me regaña cuando escribo un comando largo teniendo ya un alias para eso. El policía de mi propio sistema.
  • fzf: búsqueda difusa en el historial y en los ficheros. Ctrl+R con esteroides.
  • gh y jq: GitHub desde la terminal y JSON legible por humanos. Con estos dos se automatiza casi cualquier cosa.
  • PowerToys en el lado Windows: FancyZones para trocear el ultrapanorámico en zonas fijas de ventanas. Un monitor gigante sin orden es peor que dos pequeños ordenados.
  • Slack para el trabajo con clientes y equipos, con los avisos de los despliegues y la monitorización entrando solos a sus canales.

Linters: discutir de formato, cero

Todos mis proyectos llevan linter y formateador configurados en el editor y en la integración continua. No es (solo) por elegancia: es para no gastar ni una neurona en decidir dónde va una coma. El formato lo decide la máquina; las personas discutimos las cosas que importan.

Bitwarden para todo, también para los despliegues

La pieza de la que más orgulloso estoy. Uso Bitwarden como gestor de contraseñas personal, como todo el mundo, pero también como almacén de secretos del pipeline de desarrollo.

Cada proyecto guarda sus variables de entorno (.env) cifradas como adjuntos en Bitwarden. Tengo un par de comandos propios para subirlas y bajarlas, y el pipeline de despliegue las recupera solo en el momento de desplegar. Lo que consigo con esto:

  • Cero secretos en los repositorios. Ni "de momento", ni "es solo el de pruebas". Cero.
  • Montar el entorno en una máquina nueva son dos comandos, no una tarde buscando claves por chats antiguos.
  • Rotar una clave se hace en un sitio, y el siguiente despliegue ya la lleva.

En resumen

Sin Mac, con dos monitores o con ninguno, Windows por fuera y Linux por dentro, alias para no pensar, linters para no discutir y Bitwarden para no filtrar. Nada de esto es lo importante. Lo importante es el principio de fondo: que empezar a trabajar cueste segundos.

Así trabajo en Soft2Help. Y así se construye también el software a medida que entrego: con el mismo cariño por el orden y la misma alergia a la fricción.

Preguntas frecuentes

¿Se puede desarrollar software en serio sin un Mac?

Sí. Con WSL, el subsistema Linux de Windows, tienes un Linux completo dentro de Windows, el mismo entorno que los servidores de producción, con hardware que eliges, amplías y pagas a precio de PC. Cuando el entorno de desarrollo es idéntico al de producción, la discusión del sistema operativo del escritorio se vuelve estética.

¿Cómo se combina Windows con Linux para programar?

Con tres piezas: Windows como escritorio (drivers, ofimática, diseño), WSL con Ubuntu como sala de máquinas (Docker, repositorios, zsh, todo lo que se ejecuta) y VS Code con Remote WSL como puente, con el editor en Windows y el código y la terminal en Linux. La frontera entre los dos mundos deja de notarse.

¿Dónde guardar los secretos y los .env de los proyectos?

En Bitwarden, y no solo las contraseñas personales: cada proyecto guarda sus variables de entorno cifradas como adjuntos, y el pipeline de despliegue las recupera solo en el momento de desplegar. Resultado: cero secretos en los repositorios, montar una máquina nueva son dos comandos y rotar una clave se hace en un solo sitio.