Crear un proyecto: el asistente de Astro
Los requisitos reales de Astro 7 —Node 20 o 22—, el asistente npm create astro paso a paso, la elección de gestor de paquetes y plantilla, y el primer arranque del servidor de desarrollo con astro dev en el puerto 4321.
Todo proyecto de Astro empieza en el mismo sitio: un asistente interactivo que andamia la estructura, instala dependencias e inicializa git en menos de un minuto. Pero detrás de esas pocas preguntas hay decisiones que condicionan el resto del trabajo —gestor de paquetes, plantilla, rigor de tipos—. Vale la pena entender qué firmas antes de pulsar Enter.
- Verificar los requisitos reales de Astro 7: Node 20 o 22, terminal y editor con soporte.
- Andamiar un proyecto con
npm create astro@latestentendiendo cada pregunta del asistente. - Elegir gestor de paquetes y plantilla de arranque con criterio, no por inercia.
- Levantar el servidor de desarrollo con
astro devy leer correctamente su salida.
Requisitos: qué necesita Astro 7
Astro corre sobre Node.js, y en 2026 exige una línea LTS moderna: Node 20 o Node 22. Las versiones impares —19, 21, 23— son de vida corta y Astro no las soporta; Node 18 quedó fuera de mantenimiento y ha salido de la matriz de soporte. La regla práctica es sencilla: usa siempre la LTS par más reciente que tu entorno permita.
# comprueba tu version de Node antes de nada
node --version # v20.x o v22.x, una LTS par
# si gestionas varias versiones, fija una LTS con tu manejador
# nvm use 22 | fnm use 22 | volta install node@22
Instalar Astro sobre una versión impar de Node parece funcionar —la instalación no falla—, pero tarde o temprano un paquete nativo de la cadena de build revienta con un mensaje críptico. No pierdas una tarde depurando eso: verifica node --version antes de crear el proyecto. Una LTS par te ahorra toda una clase de fallos que no son culpa de tu código.
Además de Node necesitas dos cosas más: una terminal donde ejecutar comandos y un editor con soporte para la sintaxis .astro. La extensión oficial de Astro aporta resaltado, autocompletado y diagnósticos en tiempo real; sin ella escribirás .astro a ciegas. En la práctica no es opcional: es parte del toolchain.
Dedica dos minutos a instalar la extensión oficial de Astro en tu editor antes de crear el proyecto. Te dará resaltado de la sintaxis .astro, autocompletado de props y de las directivas client:*, y errores de tipos en línea. Programar Astro sin ella es como escribir a oscuras: funciona, pero descubres cada fallo tarde y a ciegas.
El asistente: npm create astro
El punto de entrada canónico es un solo comando. npm create astro@latest descarga y ejecuta la última versión del asistente de creación —el paquete create-astro— que te guía con unas pocas preguntas:
# lanza el asistente interactivo
npm create astro@latest
El asistente pregunta, en orden, las cosas que definen el esqueleto del proyecto:
Dónde crearlo
La carpeta destino. Si no existe, la crea; si existe y tiene ficheros, te avisa antes de continuar.
Qué plantilla
El punto de partida: un proyecto mínimo, uno con contenido de ejemplo o una plantilla de la comunidad.
Instalar dependencias
Si ejecuta la instalación al terminar. Casi siempre sí: deja el proyecto listo para arrancar.
Inicializar git
Si crea un repositorio con el primer commit. Recomendable desde el segundo cero para no perder historia.
Sobre la plantilla, la elección importa más de lo que parece. La mínima te da lo justo —una página y la configuración base— y es la mejor forma de aprender, porque no hay nada mágico que no hayas puesto tú. Las plantillas con ejemplo traen estructura y contenido de muestra, útiles para ver un proyecto real pero ruidosas cuando estudias. Para esta guía, elige siempre la mínima.
# modo no interactivo: util para scripts y CI
npm create astro@latest mi-proyecto -- \
--template minimal --install --git --yes
Cada bandera responde por adelantado a una pregunta del asistente: --template fija la plantilla, --install y --git automatizan esos pasos, y --yes acepta el resto de valores por defecto sin interacción.
npm create astro es azúcar para npx create-astro: descarga el paquete, lo ejecuta una vez y no lo deja instalado globalmente. Por eso @latest importa —garantiza que usas la última versión del asistente— y por eso no necesitas instalar nada antes. El mismo patrón vale para otros gestores: pnpm create astro, yarn create astro o bun create astro.
El gestor de paquetes: una decisión temprana
Astro es agnóstico respecto al gestor de paquetes, pero la elección se queda con el proyecto: determina el fichero de lockfile y los comandos que teclearás a diario. Los cuatro grandes funcionan igual de bien.
flowchart LR
A[npm create astro] --> B{Gestor de paquetes}
B --> C[npm universal y por defecto]
B --> D[pnpm rapido y ahorra disco]
B --> E[yarn clasico y estable]
B --> F[bun runtime y gestor en uno]
C --> G[Proyecto andamiado]
D --> G
E --> G
F --> G
style A fill:#89b4fa,color:#11111b
style G fill:#a6e3a1,color:#11111bSi no tienes una preferencia formada, npm es la opción segura: viene con Node y no exige instalar nada. pnpm es la favorita de muchos por su velocidad y por cómo comparte dependencias entre proyectos ahorrando disco. Lo decisivo no es cuál elijas, sino ser consistente: mezclar gestores en un mismo proyecto corrompe el lockfile y produce instalaciones irreproducibles.
Un detalle que se pasa por alto: ese lockfile —package-lock.json, pnpm-lock.yaml o el que corresponda— debe ir a git. Es lo que garantiza que tu equipo y tu servidor de CI instalen exactamente las mismas versiones que tú, hasta la última dependencia transitiva. Sin él, dos máquinas pueden acabar con árboles de dependencias distintos a partir del mismo package.json.
El primer arranque: astro dev
Con el proyecto andamiado y las dependencias instaladas, entra en la carpeta y arranca el servidor de desarrollo. El asistente te recuerda los comandos exactos al terminar, pero el patrón es universal:
cd mi-proyecto
npm run dev # alias del script que llama a astro dev
Astro levanta un servidor con recarga en caliente —HMR— e imprime la dirección local. Por defecto escucha en el puerto 4321:
npm run dev
# astro v7.x ready in 380 ms
# Local http://localhost:4321/
# Network use --host to expose
Abre esa URL y verás tu sitio. A partir de ahí, cada cambio que guardes en un .astro se refleja al instante sin recargar la página entera: es la promesa del compilador en Rust y de Vite 8 que viste en el nivel anterior, ahora en tu propia máquina.
Lo que tienes delante tras el andamiaje es deliberadamente poco: un package.json con astro como dependencia y los scripts dev, build y preview; un astro.config.mjs casi vacío; un tsconfig.json; una carpeta public con un favicon; y un src con una única página. Esa desnudez es una virtud —no hay convenciones ocultas que descifrar— y es justo el terreno que recorrerás en las próximas lecciones: la estructura de directorios, la configuración y el CLI.
Si vienes de otros frameworks esperarás el puerto 3000. Astro usa el 4321 —fácil de recordar: la cuenta atrás cuatro, tres, dos, uno—. Si está ocupado, Astro elige otro libre y te lo dice. Para fijar uno propio, npm run dev -- --port 8080; los flags tras -- pasan directos a astro.
Es tentador tratar npm create astro como una caja negra que “hace que funcione”, pero entender qué hace desmitifica todo el arranque. El asistente no compila ni configura nada exótico: copia una plantilla de ficheros, sustituye un par de valores como el nombre del proyecto, opcionalmente ejecuta install de tu gestor y opcionalmente hace git init con un commit. Nada más. Podrías reproducirlo a mano: crear la carpeta, escribir un package.json con astro como dependencia y un astro.config.mjs mínimo, y ejecutar astro dev. El valor del asistente no es lograr algo imposible sin él, sino eliminar la fricción y los errores de un montaje repetitivo. Interiorizar esto cambia tu relación con la herramienta: cuando algo del andamiaje no te guste —una plantilla con demasiado ruido, una dependencia que no quieres— sabes que puedes borrarlo sin miedo, porque no hay ninguna maquinaria oculta que dependa de ello. El proyecto es tuyo desde el primer commit, y cada fichero que contiene está ahí porque una plantilla lo puso, no porque Astro lo exija.
- Comprueba con
node --versionque corres una LTS par; si no, cambia a Node 22 con tu manejador de versiones. - Ejecuta
npm create astro@latest, elige la plantilla mínima y deja que instale dependencias e inicialice git. - Arranca con
npm run dev, abrehttp://localhost:4321, edita el texto de la página y observa el HMR reflejarlo al instante. - Detén el servidor y relánzalo fijando otro puerto con
npm run dev -- --port 8080; confirma que Astro respeta tu elección.