Volver al inicio
Destacado

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.

Mi setup de servidores

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:

Dokploy
Dokploy
Mi plataforma principal de deployment. Es como tener un Vercel propio pero con control total sobre la infraestructura.
Portainer
Portainer
Para gestionar todos los contenedores Docker de manera visual. Fundamental cuando tienes decenas de servicios corriendo.
Pi-Hole
Pi-Hole
Lo uso principalmente como servidor DNS local, además de bloquear anuncios y trackers a nivel de red. Toda mi infraestructura pasa por aquí, lo que me da control total sobre las peticiones DNS.
Uptime Kuma
Uptime Kuma
Monitoriza todos mis servicios y me avisa si algo deja de funcionar. Esencial para dormir tranquilo.
Umami
Umami
Analytics que respeta la privacidad. Me da toda la información que necesito sin comprometer a los usuarios.
Ollama
Ollama
Lo uso principalmente para desarrollar y testear integraciones con IA sin gastarme una fortuna en APIs. La RTX 4070 Ti me permite probar modelos potentes localmente durante el desarrollo.

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

Monitor Principal LG 27GR95QE-B UltraGear Gaming 27" - Mi monitor principal OLED con resolución QHD (2560x1440) y 240Hz. La tecnología OLED ofrece negros perfectos y colores vibrantes con DCI-P3 superior al 90%. El tiempo de respuesta de 0.03ms es imperceptible, haciendo que todo el sistema se sienta increíblemente fluido.
Monitor Secundario MSI Optix MAG274QRX 27" - Mi monitor secundario con resolución WQHD (2560x1440) y 240Hz. Perfecto para tener documentación, Slack, o herramientas de desarrollo adicionales siempre visibles con la misma calidad y fluidez que el monitor principal.

Audio

Auriculares Gaming HyperX Cloud II Wireless - Mis auriculares principales para largas sesiones de trabajo. La cancelación de ruido pasiva es excelente y la batería dura días. El micrófono integrado es útil para calls rápidas.
AirPods Max Apple AirPods Max - Para cuando necesito la mejor calidad de audio y cancelación de ruido activa. Perfectos para concentrarme en entornos ruidosos o para disfrutar música mientras trabajo.
AirPods Pro Apple AirPods Pro - Mis auriculares portátiles para cuando trabajo fuera de casa o necesito algo más ligero. La integración con el ecosistema Apple es perfecta.
Micrófono RØDE NT-USB - Mi micrófono dedicado para grabaciones, podcasts y llamadas importantes. La calidad es profesional y el setup es plug-and-play con macOS.

Dispositivos de Entrada

Mouse Logitech G Pro X2 Superlight - Ultra ligero (63g) y con sensor de alta precisión. La batería dura semanas y la respuesta es instantánea. Perfecto tanto para trabajo como para gaming ocasional.
Teclado Gaming Wooting 60HE - Mi teclado mecánico principal con switches analógicos Hall Effect. La sensación de escritura es increíble y la personalización es infinita. El Rapid Trigger hace que escribir código sea una experiencia única.
Teclado Portátil Logitech MX Keys Mini - Mi teclado secundario para cuando necesito algo más silencioso o portátil. Las teclas retroiluminadas se ajustan automáticamente y la batería dura meses.

Dispositivo Móvil

iPhone iPhone 14 Pro Max - Mi dispositivo móvil principal. La pantalla de 6.7" es perfecta para revisar código en movimiento, la Dynamic Island es útil para ver el estado de las builds, y las cámaras son excelentes para documentar proyectos.

Software de Desarrollo

IDEs y Editores

Uso diferentes IDEs según el tipo de proyecto en el que esté trabajando:

Visual Studio Code
Visual Studio Code
Mi editor principal para el día a día. Con Claude Code Claude para tareas con IA, Prettier y ESLint tengo todo lo que necesito para ser productivo.
Zed
Zed
Me gusta seguir las tendencias y proyectos emergentes. Zed es rapidísimo y tiene un enfoque interesante en la colaboración en tiempo real. Ver mi configuración
Xcode
Xcode
Imprescindible para el desarrollo de aplicaciones nativas de macOS e iOS. No hay alternativa real cuando trabajas en el ecosistema Apple.
IntelliJ IDEA CE
IntelliJ IDEA
Para proyectos en Java. La Community Edition tiene todo lo necesario y el autocompletado es insuperable.

Herramientas de Desarrollo

Mi stack de herramientas que uso diariamente:

Ghostty
Ghostty
Mi terminal principal. Es nueva pero increíblemente rápida y con renderizado GPU nativo. Ver mi configuración
LazyGit
Git
Para gestión de Git. Una interfaz TUI que hace que trabajar con Git sea mucho más visual y rápido.
Bruno
Bruno
Para testing de APIs. Es open source, rápido y guarda todo en archivos locales que puedo versionar con Git.
Sequel Ace
Sequel Ace
Para gestión de bases de datos. Fork de Sequel Pro, nativo de macOS y perfecto para MySQL/MariaDB.
Obsidian
Obsidian
Para tomar notas y documentación. Con el plugin de Git tengo sincronización perfecta entre todos mis dispositivos.

Productividad

Las aplicaciones que mantienen mi vida organizada:

Things 3
Things 3
Mi sistema GTD completo. Lo uso tanto en macOS como iOS y la sincronización es instantánea. No hay nada mejor para gestión de tareas.
Apple Mail
Apple Mail
El cliente de correo nativo de Apple. Simple, rápido y perfectamente integrado con el ecosistema.
Apple Calendar
Apple Calendar
Para gestión de calendario. La integración con el resto del ecosistema Apple es inmejorable.

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.

Brave
Brave
Mi navegador principal para ocio y uso personal. Excelente privacidad por defecto, bloqueo de anuncios integrado y recompensas BAT.
Zen Browser
Zen Browser
Mi navegador dedicado para desarrollo. Basado en Firefox, pero con una experiencia completamente reimaginada. Ver mi configuración

Herramientas y Utilidades

Estas son las aplicaciones que complementan mi flujo de trabajo y hacen que usar macOS sea una experiencia más completa:

Raycast
Raycast
Mi launcher favorito. Mucho más potente que Spotlight, con extensiones, snippets, y comandos personalizados. Imprescindible para productividad.
Alcove
Alcove
Convierte el notch en una Dynamic Island como la del iPhone. Lo mejor es que se siente completamente nativo, como si Apple lo hubiera diseñado. Controles de música, animaciones fluidas, y hasta funciona en la pantalla de bloqueo.
Rectangle
Rectangle
Gestión de ventanas con atajos de teclado. Esencial para organizar ventanas rápidamente sin usar el mouse. Ver mi configuración
AltTab
AltTab
Trae el clásico Alt+Tab de Windows a macOS. Muestra previsualizaciones de todas las ventanas abiertas y permite cambiar entre ellas rápidamente. Perfecto para cuando tienes muchas ventanas del mismo programa abiertas.
Mac Mouse Fix
Mac Mouse Fix
Hace que cualquier mouse funcione perfectamente en macOS. Scroll suave, gestos personalizados y mapeo de botones.
Klack
Klack
Añade sonidos de teclado mecánico a cualquier teclado. Perfecto para cuando uso mi Logitech MX Keys Mini y echo de menos el feedback auditivo. Siempre uso el sonido del switch Milky Yellow.
AlDente Pro
AlDente Pro
Gestiona la carga de la batería del MacBook. La mantengo al 80% cuando trabajo conectado para prolongar su vida útil. Ver mi configuración
Stats
Stats
Monitor de sistema en la barra de menús. CPU, RAM, temperaturas, velocidad de red... todo a la vista sin abrir Activity Monitor.
Latest
Latest
Mantiene todas mis aplicaciones actualizadas automáticamente. Revisa App Store, Homebrew, y apps de terceros.
Spotify
Spotify
Mi compañero musical para programar. Uso una playlist para coding Playlist de coding que me ayuda a mantener el foco sin distracciones.

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:

Homerow
Homerow
Una herramienta revolucionaria para navegar por macOS completamente con el teclado. Promete eliminar la necesidad del mouse asignando atajos de teclado inteligentes a cualquier elemento clickeable en la pantalla. Perfecto para mantener las manos en el teclado y aumentar la productividad.

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 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.

Mi configuración de Zen Browser

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 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 Zed Editor

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 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.

Ghostty Terminal en acción

¿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 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 de AlDente Pro

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 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 de Raycast

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 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.

Mis shortcuts de Rectangle

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.

Natxo

Ignacio Palacio

Desarrollador Full Stack • CEO de NorthernBytes