Mi Setup de Desarrollo 2025
Un vistazo completo a las herramientas, hardware y configuración que uso para desarrollar diariamente.
Vamos a empezar hablando de mi herramienta de desarrollo principal, que es la base de todo mi setup.
Hardware Principal
MacBook Pro 16" M4 Pro
Mi herramienta principal es un MacBook Pro de 16 pulgadas con el chip M4 Pro, equipado con 24GB de memoria unificada y 512GB de almacenamiento SSD. La decisión de compra fue principalmente porque quería dividir mi espacio de ocio en el ordenador con el del trabajo, a la vez que me permitiera trabajar en cualquier lugar y tener la posibilidad de viajar sin dejar de desarrollar.
La pantalla Liquid Retina XDR de 16 pulgadas es simplemente espectacular para el desarrollo. Los negros profundos en el modo oscuro del editor no cansan la vista, y el brillo de 1600 nits me permite trabajar perfectamente incluso en exteriores. La diferencia con mi anterior portátil es abismal.
El chip M4 Pro ha sido un cambio radical en mi flujo de trabajo. Los tiempos de compilación se han reducido drásticamente, puedo tener múltiples contenedores Docker corriendo sin que la máquina se inmute, y la duración de la batería es ridícula: fácilmente llego a las 12-14 horas de desarrollo continuo.

Infraestructura de Servidores
Además del MacBook para desarrollo, mantengo una infraestructura de servidores en casa que me permite tener control total sobre mis proyectos y datos. Aquí te cuento cómo está montado todo.
Servidor Principal de Producción
El corazón de mi infraestructura es un servidor con una NVIDIA RTX 4070 Ti y un AMD Ryzen 7 7700X, acompañado de 32GB de RAM DDR5. Esta máquina corre Ubuntu Server 22.04 y es donde despliego todos mis proyectos en producción.
En cuanto a almacenamiento, tengo una configuración bastante versátil: dos NVMe (un Kingston de 2TB y un Samsung 990 Pro de 1TB) para las aplicaciones críticas, un SSD Samsung 870 QVO de 1TB para datos frecuentes, y dos discos Seagate de 2TB en RAID 0Los datos se dividen entre ambos discos
duplicando la velocidad de lectura/escritura
pero sin redundancia para maximizar la velocidad en proyectos que requieren mucho ancho de banda.
Stack de Servicios
Este servidor ejecuta varios servicios esenciales para mi flujo de trabajo:



Servidor de Backup
La redundancia es clave, por eso mantengo un segundo servidor con una RTX 2060 Super, un Ryzen 7 3700X y 32GB de RAM DDR4. Aunque es menos potente que el principal, cumple perfectamente su función de respaldo.
Lo más importante aquí es la configuración de almacenamiento: tengo cuatro discos Seagate de 2TB configurados en RAID 1Los datos se duplican en ambos discos
proporcionando redundancia completa
Si un disco falla, no pierdes datos, lo que me da redundancia total. Si un disco falla, no pierdo nada. Además, un NVMe Kingston de 1TB y un SSD Samsung 870 QVO para backups rápidos y cachés.
Este servidor replica automáticamente todos los datos críticos del servidor principal cada noche. También lo uso para pruebas de nuevas versiones y como servidor de desarrollo cuando necesito probar algo que podría romper el entorno de producción.
Periféricos
Un buen setup no está completo sin los periféricos adecuados. Estos son los dispositivos que uso diariamente para trabajar cómodamente.
Monitores
Audio
Dispositivos de Entrada
Dispositivo Móvil
Software de Desarrollo
IDEs y Editores
Uso diferentes IDEs según el tipo de proyecto en el que esté trabajando:


Herramientas de Desarrollo
Mi stack de herramientas que uso diariamente:


Productividad
Las aplicaciones que mantienen mi vida organizada:



Mi Historia con los Navegadores
El mundo de los navegadores ha cambiado mucho en el último año, y mi experiencia personal refleja esa evolución. Empecé usando Arc Browser, que me encantaba por su innovadora interfaz y gestión de espacios de trabajo. Fue mi navegador principal hasta que, lamentablemente, dejaron de dar soporte y actualizaciones regulares.
Cuando Google Chrome empezó a restringir el uso de adblockers con Manifest V3, decidí que era el momento de buscar alternativas más respetuosas con la privacidad. Así fue como llegué a Brave, que se convirtió en mi navegador de ocio. Sin embargo, echaba mucho de menos el sidebar vertical que había descubierto con Arc.
Finalmente, cuando Zen Browser alcanzó una versión más estable, decidí hacer el cambio para desarrollo. Combinaba lo mejor de ambos mundos: la privacidad de Firefox con una interfaz moderna y ese sidebar que tanto extrañaba.
Herramientas y Utilidades
Estas son las aplicaciones que complementan mi flujo de trabajo y hacen que usar macOS sea una experiencia más completa:









Aplicaciones que Quiero Probar
Siempre estoy explorando nuevas herramientas que puedan mejorar mi flujo de trabajo. Estas son algunas aplicaciones que tengo en mi lista de pendientes para probar en un futuro cercano:

Si alguna de estas herramientas resulta ser tan buena como promete, seguramente actualizaré este post con mi experiencia. El proceso de descubrimiento y prueba de nuevas herramientas es parte fundamental de mantenerse actualizado en este mundo del desarrollo.
Aplicaciones al Detalle
A continuación, te cuento más en profundidad sobre algunas de las herramientas clave que uso diariamente y cómo las tengo configuradas.
Zen Browser: Mi Configuración en Detalle
Después de probar muchos navegadores, Zen se ha convertido en mi herramienta principal para desarrollo. Es más que un simple navegador: es un espacio de trabajo completo.

Características Principales
Sidebar con Essentials: En la parte superior del sidebar tengo mis herramientas esenciales siempre accesibles. Dokploy para deployments, GitHub para repositorios, y todos los servicios que uso diariamente están a un solo click de distancia. Es como tener un centro de comando personalizado.
Workspaces Separados: Esta es probablemente mi característica favorita. Mantengo dos espacios completamente aislados: uno para desarrollo donde tengo todas mis sesiones de trabajo, y otro para ocio donde no hay rastro de cuentas laborales. Es la separación perfecta entre vida personal y profesional, sin necesidad de usar diferentes navegadores.
Personalización Total: El sidebar vertical no solo ahorra espacio horizontal (crucial cuando necesitas ver más código en pantalla), sino que es completamente personalizable. Puedo reorganizar, añadir o quitar elementos según el proyecto en el que esté trabajando. Cada workspace puede tener su propia configuración.
Rendimiento Firefox: Al estar basado en Firefox, obtengo excelente rendimiento y privacidad real. Todas las extensiones de desarrollo que uso funcionan perfectamente, y no tengo que lidiar con las limitaciones de Manifest V3 de Chrome. Además, consume menos RAM que cualquier navegador basado en Chromium.
¿Por qué Zen sobre otros navegadores?
Después de Arc, ningún navegador tradicional me convencía. Chrome y Edge son demasiado pesados y poco respetuosos con la privacidad. Safari es excelente pero limitado en extensiones. Firefox es genial pero su interfaz se siente anticuada.
Zen combina lo mejor de varios mundos: la innovación en UX de Arc (sidebar, espacios de trabajo), la privacidad y rendimiento de Firefox, la estabilidad de un proyecto open source activo, y la personalización que necesito como desarrollador. Es el navegador que hubiera construido si tuviera que hacer uno desde cero.
Zed Editor: Mi Experiencia con el Editor del Futuro
Zed es un editor de código que ha captado mi atención por su enfoque en la velocidad y la colaboración. Construido desde cero con Rust, es notablemente rápido y se siente extremadamente fluido. Como mencioné anteriormente, me gusta seguir las tendencias y proyectos emergentes, y Zed es uno de esos proyectos que promete revolucionar cómo editamos código.

Mi Configuración de Temas
Una de las cosas que más disfruto de Zed es la capacidad de personalizar completamente la experiencia visual. Trabajo con dos temas principales según el momento del día y mi estado de ánimo.
Durante el día, especialmente por las mañanas, uso mi tema personalizado Warm Light. Lo diseñé específicamente para reducir la fatiga visual durante largas sesiones de código con luz natural. Los tonos cálidos y el contraste suave hacen que sea perfecto para trabajar con la luz del sol entrando por la ventana. El color de acento principal es un rosa púrpura ( #A64270) que resalta sin ser agresivo.
Por las tardes y noches, cambio a One Dark, el clásico tema oscuro que todos conocemos y amamos. Es perfecto para sesiones nocturnas de programación, con colores vibrantes que resaltan sobre el fondo oscuro sin ser agresivos para la vista. La transición entre ambos temas es parte de mi ritual diario de trabajo.
Para los iconos, uso Material Icon Theme, que proporciona iconos distintivos y coloridos para cada tipo de archivo y carpeta. Esta combinación visual hace que navegar por el proyecto sea mucho más intuitivo y agradable.
Ver configuración completa del tema Warm Light
{
"$schema": "https://zed.dev/schema/themes/v0.2.0.json",
"name": "Warm Light",
"author": "Natxo",
"themes": [
{
"name": "Warm Light",
"appearance": "light",
"style": {
"background.appearance": "opaque",
"accents": ["#A64270"],
"background": "#FAFAFA",
"border": "#E4E4E4",
"border.variant": "#D0D0D0",
"border.focused": "#A64270",
"border.disabled": "#E8E8E8",
"border.selected": "#A64270",
"border.transparent": "#00000000",
"elevated_surface.background": "#FFFFFF",
"surface.background": "#F8F8F8",
"element.background": "#F0F0F0",
"element.hover": "#E8E8E8",
"element.active": "#E0E0E0",
"element.selected": "#F0E8F0",
"element.disabled": "#F2F2F2",
"drop_target.background": "#A6427040",
"ghost_element.background": "#00000000",
"ghost_element.hover": "#E8E8E8",
"ghost_element.active": "#E0E0E0",
"ghost_element.selected": "#F0E8F0",
"ghost_element.disabled": "#F2F2F2",
"text": "#232323",
"text.muted": "#606060",
"text.placeholder": "#909090",
"text.disabled": "#B0B0B0",
"text.accent": "#A64270",
"icon": "#505050",
"icon.muted": "#808080",
"icon.disabled": "#B0B0B0",
"icon.placeholder": "#909090",
"icon.accent": "#A64270",
"status_bar.background": "#F0F0F0",
"title_bar.background": "#F0F0F0",
"title_bar.inactive_background": "#E8E8E8",
"toolbar.background": "#F8F8F8",
"tab_bar.background": "#F0F0F0",
"tab.inactive_background": "#E8E8E8",
"tab.active_background": "#FFFFFF",
"search.match_background": "#D7AB5430",
"panel.background": "#F8F8F8",
"panel.focused_border": "#A64270",
"pane.focused_border": "#A64270",
"scrollbar.thumb.background": "#50505020",
"scrollbar.thumb.hover_background": "#50505040",
"scrollbar.thumb.border": "#E4E4E4",
"scrollbar.track.background": "#00000000",
"scrollbar.track.border": "#00000000",
"editor.foreground": "#232323",
"editor.background": "#FFFFFF",
"editor.gutter.background": "#FFFFFF",
"editor.subheader.background": "#F0F0F0",
"editor.active_line.background": "#F8F8F8",
"editor.highlighted_line.background": "#F5F5F5",
"editor.line_number": "#909090",
"editor.active_line_number": "#606060",
"editor.invisible": "#D0D0D0",
"editor.wrap_guide": "#E4E4E4",
"editor.active_wrap_guide": "#D0D0D0",
"editor.document_highlight.read_background": "#A6427020",
"editor.document_highlight.write_background": "#A6427030",
"terminal.background": "#FFFFFF",
"terminal.foreground": "#232323",
"terminal.bright_foreground": "#232323",
"terminal.dim_foreground": "#606060",
"terminal.ansi.black": "#232323",
"terminal.ansi.bright_black": "#606060",
"terminal.ansi.dim_black": "#404040",
"terminal.ansi.red": "#CC5450",
"terminal.ansi.bright_red": "#E85D5C",
"terminal.ansi.dim_red": "#B04844",
"terminal.ansi.green": "#71983B",
"terminal.ansi.bright_green": "#81A844",
"terminal.ansi.dim_green": "#648833",
"terminal.ansi.yellow": "#D7AB54",
"terminal.ansi.bright_yellow": "#E8BC5E",
"terminal.ansi.dim_yellow": "#C09A4A",
"terminal.ansi.blue": "#376388",
"terminal.ansi.bright_blue": "#4A7699",
"terminal.ansi.dim_blue": "#2D5177",
"terminal.ansi.magenta": "#A64270",
"terminal.ansi.bright_magenta": "#B85482",
"terminal.ansi.dim_magenta": "#94365E",
"terminal.ansi.cyan": "#307878",
"terminal.ansi.bright_cyan": "#408888",
"terminal.ansi.dim_cyan": "#266868",
"terminal.ansi.white": "#E4E4E4",
"terminal.ansi.bright_white": "#F0F0F0",
"terminal.ansi.dim_white": "#D0D0D0",
"link_text.hover": "#376388",
"conflict": "#D7AB54",
"conflict.background": "#D7AB5420",
"conflict.border": "#D7AB54",
"created": "#71983B",
"created.background": "#71983B20",
"created.border": "#71983B",
"deleted": "#CC5450",
"deleted.background": "#CC545020",
"deleted.border": "#CC5450",
"error": "#CC5450",
"error.background": "#CC545020",
"error.border": "#CC5450",
"hidden": "#909090",
"hidden.background": "#F2F2F2",
"hidden.border": "#E4E4E4",
"hint": "#376388",
"hint.background": "#37638820",
"hint.border": "#376388",
"ignored": "#909090",
"ignored.background": "#F2F2F2",
"ignored.border": "#E4E4E4",
"info": "#376388",
"info.background": "#37638820",
"info.border": "#376388",
"modified": "#D7AB54",
"modified.background": "#D7AB5420",
"modified.border": "#D7AB54",
"predictive": "#808080",
"predictive.background": "#37638810",
"predictive.border": "#376388",
"renamed": "#376388",
"renamed.background": "#37638820",
"renamed.border": "#376388",
"success": "#71983B",
"success.background": "#71983B20",
"success.border": "#71983B",
"unreachable": "#909090",
"unreachable.background": "#F2F2F2",
"unreachable.border": "#E4E4E4",
"warning": "#D7AB54",
"warning.background": "#D7AB5420",
"warning.border": "#D7AB54",
"players": [
{
"cursor": "#A64270",
"background": "#A64270",
"selection": "#A6427030"
}
],
"syntax": {
"attribute": {
"color": "#C57D42",
"font_style": null,
"font_weight": null
},
"boolean": {
"color": "#A64270",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "#808080",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "#707070",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "#A64270",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "#C57D42",
"font_style": null,
"font_weight": null
},
"embedded": {
"color": "#232323",
"font_style": null,
"font_weight": null
},
"emphasis": {
"color": "#A64270",
"font_style": "italic",
"font_weight": null
},
"emphasis.strong": {
"color": "#A64270",
"font_style": null,
"font_weight": 700
},
"enum": {
"color": "#C57D42",
"font_style": null,
"font_weight": null
},
"function": {
"color": "#376388",
"font_style": null,
"font_weight": null
},
"hint": {
"color": "#376388",
"font_style": null,
"font_weight": 700
},
"keyword": {
"color": "#A64270",
"font_style": "italic",
"font_weight": null
},
"label": {
"color": "#A64270",
"font_style": null,
"font_weight": null
},
"link_text": {
"color": "#376388",
"font_style": "underline",
"font_weight": null
},
"link_uri": {
"color": "#376388",
"font_style": null,
"font_weight": null
},
"number": {
"color": "#307878",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "#232323",
"font_style": null,
"font_weight": null
},
"predictive": {
"color": "#808080",
"font_style": "italic",
"font_weight": null
},
"preproc": {
"color": "#A64270",
"font_style": null,
"font_weight": null
},
"primary": {
"color": "#232323",
"font_style": null,
"font_weight": null
},
"property": {
"color": "#232323",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "#606060",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "#606060",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "#606060",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "#606060",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "#606060",
"font_style": null,
"font_weight": null
},
"string": {
"color": "#71983B",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "#D7AB54",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "#D7AB54",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "#C57D42",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "#71983B",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "#CC5450",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "#71983B",
"font_style": null,
"font_weight": null
},
"title": {
"color": "#376388",
"font_style": null,
"font_weight": 700
},
"type": {
"color": "#307878",
"font_style": null,
"font_weight": null
},
"variable": {
"color": "#232323",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "#CC5450",
"font_style": null,
"font_weight": null
},
"variant": {
"color": "#C57D42",
"font_style": null,
"font_weight": null
}
}
}
}
]
}
Características que Me Encantan de Zed
Velocidad Extrema: Al estar construido en Rust, Zed es increíblemente rápido. Abrir archivos grandes, buscar en proyectos masivos, todo es instantáneo. No hay ese pequeño lag que a veces experimentas en otros editores.
Colaboración en Tiempo Real: Aunque no lo uso frecuentemente, la capacidad de colaborar en tiempo real con otros desarrolladores directamente en el editor es revolucionaria. Es como Google Docs pero para código.
IA Integrada: La integración con diferentes modelos de IA es fluida y natural. No es un plugin añadido después, sino parte fundamental de la experiencia.
Minimalismo Funcional: La interfaz es limpia y minimalista, pero sin sacrificar funcionalidad. Todo está donde lo esperas, y las distracciones son mínimas.
Ghostty: La Terminal del Futuro
Ghostty es una terminal nativa para macOS que está revolucionando cómo interactúo con la línea de comandos. Desarrollada con un enfoque en el rendimiento y la experiencia de usuario, utiliza renderizado GPU nativo para ofrecer una velocidad sin precedentes.

¿Por qué Ghostty?
Después de años usando iTerm2 y probar alternativas como Warp y Alacritty, Ghostty es la primera terminal que realmente se siente como una aplicación nativa de macOS moderna. No es solo rápida; es instantánea. El renderizado GPU hace que el scrolling y la visualización de texto sean increíblemente fluidos, sin ese lag molesto que tienen otras terminales.
Lo que más me gusta es que respeta las convenciones de macOS. Los atajos de teclado funcionan como esperas, la integración con el sistema es perfecta, y hasta soporta tabs nativos en la barra de título al estilo de Safari.
Mi Configuración Personal
Esta es mi configuración actual de Ghostty. El tema Blue Matrix le da un toque cyberpunk que me encanta, mientras que Cascadia Code es mi fuente preferida por su excelente legibilidad:
theme = Blue Matrix
font-family = "Cascadia Code"
font-family-bold = "Cascadia Code Bold"
font-family-italic = "Cascadia Code Italic"
font-family-bold-italic = "Cascadia Code Bold Italic"
term = xterm-256color
font-size = 20
background-opacity = 0.9
background-blur-radius = 20
quit-after-last-window-closed = true
window-decoration = true
macos-titlebar-proxy-icon = hidden
title = "MacBook Pro"
copy-on-select = false
window-colorspace = display-p3
macos-titlebar-style = tabs
cursor-style = block
cursor-style-blink = true
keybind = shift+enter=text:\n
Características Destacadas de mi Config
Transparencia y Blur: Con `background-opacity = 0.9` y `background-blur-radius = 20`, consigo ese efecto de cristal esmerilado que se ve genial con el escritorio de fondo, sin sacrificar legibilidad.
Tabs Nativos: `macos-titlebar-style = tabs` activa las pestañas nativas de macOS en la barra de título, igual que en Safari o Finder. Súper limpio y coherente con el sistema.
Color Display P3: Con `window-colorspace = display-p3` aprovecho toda la gama de colores de la pantalla del MacBook Pro. Los colores del tema se ven vibrantes y precisos.
Keybind Personalizado: La línea `keybind = shift+enter=text:\n` me permite insertar saltos de línea con Shift+Enter, útil cuando estoy escribiendo comandos multilínea.
Mis Aliases de Terminal
Estos son los aliases que tengo configurados en mi shell para acelerar los comandos más comunes:
alias gs="git status"
alias ga="git add ."
alias gc="git commit -m"
alias gp="git push"
alias dev="npm run dev"
alias build="npm run build"
AlDente Pro: Cuida la Batería de tu MacBook
AlDente Pro es una herramienta esencial para cualquier usuario de MacBook que quiera maximizar la vida útil de su batería. Apple diseña las baterías para funcionar mejor cuando se mantienen entre 20% y 80% de carga, y AlDente hace exactamente eso de forma automática.

Mi Configuración Personal
Como puedes ver en la imagen, mantengo mi batería limitada al 80% de carga máxima cuando trabajo conectado a la corriente. Esto es crucial porque las baterías de ion-litio se degradan más rápidamente cuando se mantienen constantemente al 100%.
Características Clave que Uso
Límite de Carga Personalizado: Configurado al 80% para uso diario. Cuando sé que voy a salir y necesito autonomía completa, simplemente lo subo al 100% temporalmente con un click.
Discharge Mode: A veces activo esta función para que el MacBook use la batería incluso conectado a corriente. Esto ayuda a ejercitar la batería y mantenerla en forma.
Calibración Manual: Realizo calibraciones de la batería cada 2-3 meses. Esto consiste en descargarla completamente y luego cargarla al 100%, fundamental para que macOS muestre correctamente el porcentaje de carga.
Heat Protection: Tengo configurada la temperatura máxima en 40°C. Si la batería alcanza esta temperatura, AlDente pausa la carga automáticamente para evitar daños por sobrecalentamiento, especialmente útil durante sesiones intensivas de desarrollo o cuando hace calor.
¿Por Qué es Importante?
Después de dos años usando AlDente en mi anterior MacBook, la batería mantenía el 94% de su capacidad original. Sin esta herramienta, normalmente estaría alrededor del 80-85%. Esa diferencia puede significar uno o dos años extra de vida útil de la batería.
Para alguien que trabaja principalmente desde casa con el MacBook conectado, AlDente Pro es una inversión que se paga sola al evitar un reemplazo prematuro de batería (que cuesta alrededor de 200-300€).
Raycast: Mi Centro de Comando Personal
Raycast es mucho más que un launcher de aplicaciones. Es mi centro de comando personal, desde donde controlo prácticamente todo en mi Mac sin tocar el mouse. Si Spotlight es una bicicleta, Raycast es un Ferrari.

Mi Configuración
Abro Raycast con ⌘ + Espacio, reemplazando completamente a Spotlight. Es instantáneo y siempre está ahí cuando lo necesito.
Por otro lado, tengo configurado el Caps Lock como Hyper Key (⌃⌥⌘⇧) incluyendo Shift. Esto no es para Raycast, sino para tener más combinaciones de teclas disponibles para otras apps como Rectangle, donde lo uso extensivamente para mover y redimensionar ventanas sin conflictos con los atajos del sistema.
Aliases Personalizados
Tengo configurados algunos aliases simples pero efectivos:
db → Sequel Ace - Acceso instantáneo a mi gestor de bases de datos. Escribo "db" y en menos de un segundo estoy navegando por mis tablas.
code → Visual Studio Code - Mi editor siempre a dos teclas de distancia. También puedo añadir el path de un proyecto para abrirlo directamente.
Herramientas que Uso Constantemente
Calculadora Inteligente: No es una calculadora normal. Puedo escribir expresiones complejas, conversiones de unidades, y hasta cálculos de fechas. Por ejemplo, "150 USD to EUR" o "25% de 1280" funcionan perfectamente. La uso decenas de veces al día.
Convertidor de Divisas: Esencial para trabajar con clientes internacionales. Lo uso principalmente para conversiones EUR a USD y viceversa. Escribo "100 EUR to USD" y tengo el resultado al instante con tasas actualizadas.
Clipboard History: Guarda todo lo que copio y me permite buscar en el historial. Invaluable cuando estoy moviendo código entre archivos o necesito recuperar algo que copié hace horas.
Color Picker: Lo uso constantemente para capturar colores de cualquier parte de la pantalla. Perfecto para cuando estoy trabajando en diseño o necesito extraer un color específico de una imagen o web. Copio el valor hexadecimal directamente al portapapeles.
¿Por Qué Raycast?
La configuración por defecto de Raycast es prácticamente perfecta. No necesito personalizarlo demasiado, solo algunos aliases y las herramientas que uso constantemente. Es rápido, potente y se mantiene fuera del camino hasta que lo necesito.
Rectangle: Control Total de Ventanas
Rectangle es mi herramienta esencial para gestión de ventanas en macOS. Con la Hyper Key (Caps Lock) como base, tengo control absoluto sobre el posicionamiento y tamaño de cada ventana sin tocar el mouse.

Mi Sistema de Atajos con Hyper Key
Todo mi flujo de trabajo con Rectangle gira en torno a la Hyper Key (⌃⌥⌘⇧). Al tener Caps Lock configurado como Hyper Key, obtengo un modificador único que nunca entra en conflicto con otros atajos del sistema o aplicaciones.
Atajos Principales
Hyper + ←
- Mitad izquierda
Hyper + →
- Mitad derecha
Hyper + ↑
- Mitad superior
Hyper + ↓
- Mitad inferior
Hyper + M
- Maximizar
Control de Tamaño
Hyper + -
- Hacer más pequeño
Hyper + =
- Hacer más grande
Bonus: Atajo de macOS
⌘ + M
- Minimizar ventana
Aunque no es parte de Rectangle, uso constantemente este atajo nativo de macOS para minimizar ventanas. Complementa perfectamente mi flujo de trabajo con Rectangle.
Mi Flujo de Trabajo
Con dos monitores, mi configuración varía según el tipo de desarrollo:
Desarrollo Web:
- Monitor principal (LG OLED): Navegador con la web en desarrollo a pantalla completa - aprovecho la calidad OLED para ver los colores y diseño perfectamente
- Monitor secundario (MSI): VS Code con Ghostty abierto para ver los logs
Desarrollo Backend:
- Monitor principal (LG OLED): VS Code maximizado para tener todo el código visible
- Monitor secundario (MSI): Ghostty en mitad de pantalla + Discord/Slack/Mail en la otra mitad según lo que necesite
La belleza de Rectangle es que todo es muscle memory. Después de usarlo un tiempo, reorganizar ventanas se vuelve instantáneo y no interrumpe el flujo de trabajo. Es como tener superpoderes de gestión de ventanas.
¿Por Qué Rectangle?
Hay muchas alternativas (Magnet, BetterSnapTool, Moom), pero Rectangle es gratuito, open source, y hace exactamente lo que necesito sin bloat. La configuración con Hyper Key lo hace aún más poderoso, dándome acceso a docenas de comandos sin conflictos.
Conclusión
Este es mi setup actual, pero quiero dejar algo claro: no existe un setup perfecto ni una combinación ideal para todo el mundo. Lo que funciona para mí puede no funcionar para ti, y eso está perfectamente bien.
Mi setup está en constante evolución. Continuamente descubro herramientas nuevas, pruebo configuraciones diferentes y adapto mi flujo de trabajo. Al fin y al cabo, llevo relativamente poco tiempo en el ecosistema de macOS y cada día aprendo algo nuevo.
Con el tiempo no solo vas conociendo nuevas herramientas, sino que también vas madurando y masterizando las que ya usas. Aprendes atajos, trucos, integraciones que te hacen más eficiente. Es un proceso de mejora continua tanto con las herramientas de desarrollo como con las que te ayudan a trabajar más rápido.
Un ejemplo perfecto de esta evolución: hasta hace poco usaba Notion para todo. Pero la comunidad y el ecosistema de Obsidian me convencieron de migrar todos mis apuntes y reestructurar completamente mi sistema de notas. Fue un cambio grande, pero lo hice por curiosidad, por investigar y por conocer algo nuevo. Y valió la pena.
En conclusión, espero que de todo esto podáis sacar algo interesante o, al menos, que se os haya hecho ameno leerlo. Si algo de lo que he compartido te sirve o te inspira a probar algo nuevo, habrá valido la pena escribirlo. ♥

Ignacio Palacio
Desarrollador Full Stack • CEO de NorthernBytes