Instalación
Requisitos del sistema:
- Node.js 18.17 o posterior.
- Compatible con macOS, Windows (incluyendo WSL) y Linux.
Instalación automática
Recomendamos iniciar una nueva aplicación Next.js usando create-next-app
, que configura todo automáticamente. Para crear un proyecto, ejecuta:
npx create-next-app@latest
Durante la instalación, verás las siguientes preguntas:
¿Cómo quieres llamar a tu proyecto? my-app
¿Deseas usar TypeScript? No / Sí
¿Deseas usar ESLint? No / Sí
¿Deseas usar Tailwind CSS? No / Sí
¿Deseas usar el directorio `src/`? No / Sí
¿Deseas usar App Router? (recomendado) No / Sí
¿Deseas personalizar el alias de importación por defecto (@/*)? No / Sí
¿Qué alias de importación deseas configurar? @/*
Después de las preguntas, create-next-app
creará una carpeta con el nombre de tu proyecto e instalará las dependencias necesarias.
Si eres nuevo en Next.js, consulta la documentación sobre estructura del proyecto para obtener una visión general de todos los archivos y carpetas posibles en tu aplicación.
Nota importante:
- Next.js ahora incluye configuración predeterminada para TypeScript, ESLint y Tailwind CSS.
- Opcionalmente puedes usar un directorio
src
en la raíz de tu proyecto para separar el código de tu aplicación de los archivos de configuración.
Instalación manual
Para crear manualmente una nueva aplicación Next.js, instala los paquetes requeridos:
npm install next@latest react@latest react-dom@latest
Abre tu archivo package.json
y agrega los siguientes scripts
:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
}
}
Estos scripts corresponden a las diferentes etapas del desarrollo de una aplicación:
dev
: ejecutanext dev
para iniciar Next.js en modo desarrollo.build
: ejecutanext build
para construir la aplicación para producción.start
: ejecutanext start
para iniciar un servidor de producción Next.js.lint
: ejecutanext lint
para configurar ESLint integrado en Next.js.
Creación de directorios
Next.js usa enrutamiento basado en sistema de archivos, lo que significa que las rutas en tu aplicación se determinan por cómo estructuras tus archivos.
El directorio app
Para nuevas aplicaciones, recomendamos usar el App Router. Este enrutador te permite usar las últimas características de React y es una evolución del Pages Router basado en feedback de la comunidad.
Crea una carpeta app/
, luego agrega un archivo layout.tsx
y page.tsx
. Estos se renderizarán cuando el usuario visite la raíz de tu aplicación (/
).

Crea un root layout dentro de app/layout.tsx
con las etiquetas requeridas <html>
y <body>
:
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
Finalmente, crea una página inicial app/page.tsx
con contenido básico:
export default function Page() {
return <h1>¡Hola, Next.js!</h1>
}
export default function Page() {
return <h1>¡Hola, Next.js!</h1>
}
Nota importante: Si olvidas crear
layout.tsx
, Next.js creará automáticamente este archivo al ejecutar el servidor de desarrollo connext dev
.
Aprende más sobre usar App Router.
El directorio pages
(opcional)
Si prefieres usar Pages Router en lugar de App Router, puedes crear un directorio pages/
en la raíz de tu proyecto.
Luego, agrega un archivo index.tsx
dentro de tu carpeta pages
. Esta será tu página de inicio (/
):
export default function Page() {
return <h1>¡Hola, Next.js!</h1>
}
A continuación, agrega un archivo _app.tsx
dentro de pages/
para definir el diseño global. Aprende más sobre el archivo App personalizado.
import type { AppProps } from 'next/app'
export default function App({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
export default function App({ Component, pageProps }) {
return <Component {...pageProps} />
}
Finalmente, agrega un archivo _document.tsx
dentro de pages/
para controlar la respuesta inicial del servidor. Aprende más sobre el archivo Document personalizado.
import { Html, Head, Main, NextScript } from 'next/document'
export default function Document() {
return (
<Html>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
Aprende más sobre usar Pages Router.
Nota importante: Aunque puedes usar ambos enrutadores en el mismo proyecto, las rutas en
app
tendrán prioridad sobrepages
. Recomendamos usar solo un enrutador en tu nuevo proyecto para evitar confusiones.
La carpeta public
(opcional)
Crea una carpeta public
para almacenar recursos estáticos como imágenes, fuentes, etc. Los archivos dentro del directorio public
pueden ser referenciados por tu código desde la URL base (/
).
Ejecutar el servidor de desarrollo
- Ejecuta
npm run dev
para iniciar el servidor de desarrollo. - Visita
http://localhost:3000
para ver tu aplicación. - Edita el archivo
app/page.tsx
(opages/index.tsx
) y guárdalo para ver los cambios actualizados en tu navegador.