Mascota Jacar — leyendo contigo Un portátil cuyos ojos siguen el cursor mientras lees.
Tecnología

Programación con GitHub Codespaces

Programación con GitHub Codespaces

Actualizado: 2026-05-03

GitHub Codespaces lleva el entorno de desarrollo completo a la nube: el editor (VS Code), las dependencias, las extensiones y la configuración del proyecto viven en un contenedor remoto al que se accede desde el navegador o desde el VS Code de escritorio. El resultado elimina el problema de “funciona en mi máquina”, reduce el tiempo de onboarding de nuevos desarrolladores de días a minutos y permite trabajar desde cualquier dispositivo sin configuración local.

Puntos clave

  • Codespaces es un entorno de desarrollo alojado por GitHub, basado en contenedores Docker configurados mediante devcontainer.json.
  • El entorno es reproducible: todos los miembros del equipo trabajan con exactamente las mismas versiones de herramientas, dependencias y extensiones.
  • El tiempo de arranque de un codespace prebuilds es inferior a 30 segundos; sin prebuild, puede ser de 2-5 minutos la primera vez.
  • Las instancias van desde 2 cores / 4 GB RAM hasta 32 cores / 64 GB RAM, lo que permite ajustar el tamaño al tipo de proyecto.
  • El coste depende del uso real (horas de cómputo + almacenamiento); para uso esporádico, el plan gratuito de GitHub suele ser suficiente.

Qué es un codespace y cómo se configura

Un codespace es un contenedor de desarrollo en la nube de GitHub. Cuando se abre un repositorio en Codespaces, GitHub instancia un contenedor Docker basado en la configuración del directorio .devcontainer/ del repositorio. Si no existe esa configuración, usa una imagen base con las herramientas más comunes.

El archivo central de configuración es devcontainer.json:

json
{
  "name": "Node.js 20",
  "image": "mcr.microsoft.com/devcontainers/javascript-node:20",
  "features": {
    "ghcr.io/devcontainers/features/github-cli:1": {},
    "ghcr.io/devcontainers/features/docker-in-docker:2": {}
  },
  "customizations": {
    "vscode": {
      "extensions": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
    }
  },
  "postCreateCommand": "npm install"
}

Con esta configuración, cualquier miembro del equipo que abra el repositorio en Codespaces obtendrá automáticamente Node.js 20, la CLI de GitHub, Docker, las extensiones de Prettier y ESLint, y las dependencias del proyecto instaladas —sin una sola línea de configuración manual.

Ventajas concretas frente al desarrollo local

Reproducibilidad El problema más frecuente en equipos de software es la divergencia de entornos. Un desarrollador usa Node 18, otro usa Node 20; uno tiene Python 3.10, otro Python 3.12. Las diferencias pequeñas acumulan bugs difíciles de reproducir. Con Codespaces, el devcontainer.json define exactamente el entorno y todos trabajan sobre el mismo.

Onboarding acelerado Un nuevo desarrollador que se une al equipo puede tener un entorno completamente funcional en el tiempo que tarda en hacer clic en “Open in Codespaces”. No instala nada localmente, no configura variables de entorno, no sigue un README de configuración de 30 pasos.

Acceso desde cualquier dispositivo Codespaces funciona desde un navegador moderno. Es posible continuar una sesión de desarrollo desde una tablet, un ordenador prestado o un dispositivo sin las dependencias instaladas.

Tamaño ajustable Proyectos que requieren compilar grandes bases de código (Rust, C++, proyectos móviles) o entrenar modelos ligeros pueden usar instancias de 16 o 32 cores sin necesidad de una máquina local potente.

Editor Visual Studio Code ejecutándose remotamente, misma experiencia que proporciona GitHub Codespaces en el navegador o en escritorio

Prebuilds: arranque instantáneo

El tiempo de arranque de un codespace sin configuración previa puede ser de varios minutos si hay que instalar dependencias. Los prebuilds eliminan este problema: GitHub ejecuta automáticamente el proceso de creación del contenedor (incluido el postCreateCommand) cuando se hace push a la rama configurada, de modo que cuando un desarrollador abre el codespace, el entorno ya está listo.

Los prebuilds se configuran en Settings → Codespaces → Prebuild configuration del repositorio. Son especialmente valiosos en proyectos con dependencias pesadas o procesos de build largos.

Cuándo Codespaces tiene más sentido

Codespaces aporta más valor en estos escenarios:

  • Equipos distribuidos con sistemas operativos heterogéneos (macOS, Windows, Linux).
  • Proyectos con onboarding frecuente: contribuyentes externos, pasantes, equipos que escalan.
  • Trabajos puntuales en repositorios de terceros: abrir un PR de corrección en un proyecto open source sin contaminar el entorno local.
  • Proyectos con requisitos de cómputo altos que superan el hardware del portátil.

Codespaces tiene menos sentido cuando:

  • El proyecto es simple y el entorno local está ya configurado y estable.
  • Se trabaja con frecuencia sin conexión a Internet.
  • El coste de cómputo no está justificado por el tipo de uso (para uso muy esporádico, una VM propia puede ser más económica).

La lógica de “herramienta correcta para el contexto correcto” aplica aquí igual que en la elección de tecnologías de fabricación aditiva o de blockchain: el primer paso es diagnosticar el problema, no enamorarse de la herramienta.

Limitaciones que conviene conocer

  • Latencia de red: para tareas muy interactivas (edición de código con respuesta inmediata), una latencia alta entre el cliente y el servidor de GitHub puede ser perceptible. Los servidores de Codespaces están distribuidos geográficamente, pero no siempre en la región más cercana.
  • Almacenamiento persistente: el contenido del codespace persiste mientras el codespace existe, pero si se elimina el codespace, el trabajo no comprometido en git se pierde. La disciplina de commits frecuentes es más importante que en local.
  • No todos los flujos tienen soporte completo: algunos flujos de trabajo que requieren hardware específico (Bluetooth, USB, tarjeta de audio) no son reproducibles en Codespaces.
  • Coste en uso intensivo: para un equipo de 20 desarrolladores que trabajan 8 horas al día, el coste puede ser significativo. La gestión de inactividad (apagado automático tras N minutos sin actividad) es importante para controlar la factura.

Conclusión

GitHub Codespaces resuelve uno de los problemas más persistentes del desarrollo en equipo: la divergencia de entornos. Al definir el entorno como código en devcontainer.json, el proyecto se convierte en su propio manual de configuración, siempre actualizado y siempre ejecutable. Para equipos con onboarding frecuente, trabajo en múltiples sistemas operativos o necesidades de cómputo variables, Codespaces es la herramienta que elimina la fricción que nadie mide pero todos sienten.

¿Te ha resultado útil?
[Total: 13 · Media: 4.4]

Escrito por

CEO - Jacar Systems

Apasionado de la tecnología, la infraestructura cloud y la inteligencia artificial. Escribe sobre DevOps, IA, plataformas y software desde Madrid.