Curso de Next.js gratis desde Cero: Domina el Framework de React para aplicaciones web

by Juan Carlos García
29-Abr-2025
(2)
Suscribirme al canal:
Bien venido a este curso gratuito de Next.js desde cero, aprenderás todo lo importe respecto a Next.js desde la instalación hasta conceptos avanzados como optimización, SEO y rutas dinámicas, con ejercicios prácticos y ejemplos claros.
Espero te se de utilidad y te ayude en tu crecimiento profesional, recuerda que puedes escribirme todas las dudas respecto del curso, mucha éxito. 🤟💪
Qué es Next.js y por qué usarlo en lugar de React puro
Características principales: SSR y ISR.
Requisitos previos: Conocimientos básicos de JavaScript y React
¡No te puedes perder las nuevas clases 🧐!

Curso de Next.js gratuito
Curso de Next.js gratis desde Cero: Domina el Framework de React para aplicaciones web
(2)

Fundamentos Next.js
Fundamentos Next.js: Components, navegación Link, estilos y tipos de letra.
(2)


next.config.js y variables de entorno en Next.js
Domina next.config.js y variables de entorno en Next.js 15: Configuración esencial
(2)

🧐 Autoevaluación: Curso de Next.js gratuito
¿Cuál es el comando correcto para iniciar un proyecto con Next.js 15 usando npm?
¿Qué carpeta es esencial para el sistema de routing en Next.js 15 cuando se usa App Router?
¿Qué archivo de configuración permite personalizar opciones avanzadas en Next.js 15?
Tabla de contenido
- 1 ¿Qué es Next.js?
- 2 Principales Métodos de Renderizado en Next.js: SSR e ISSR
- 3 Configuración Profesional del Entorno para Next.js
- 4 Ejercicio Práctico: Crear Proyecto Next.js con TypeScript
- 5 Creación de tu Primer Proyecto Next.js con create-next-app
- 6 Ejercicio Práctico: Primeros Pasos
- 7 Tipos de Rutas y su Estructura en Next.js 15
- 8 Diferencias fundamentales entre Pages Router y App Router en Next.js 15
¿Qué es Next.js?
Next.js es un framework de React que simplifica la creación de aplicaciones web modernas con funcionalidades listas para producción, a diferencia de React puro (que solo es una biblioteca para interfaces de usuario), Next.js ofrece soluciones integradas para problemas comunes como el enrutamiento, la renderización del lado del servidor y la optimización de imágenes, lo que acelera el desarrollo y mejora el rendimiento.
Diferencias clave entre Next.js y React
- Renderizado: Next.js soporta SSR (Server-Side Rendering) e ISR (Incremental Static Regeneration) de forma nativa, mientras que React solo hace CSR (Client-Side Rendering).
- Enrutamiento: Next.js tiene un sistema de archivos basado en la carpeta
pages
, o App Router, React requiere librerías como React Router. - Optimización: Next.js incluye optimización automática de imágenes, pre-renderizado y code splitting (Permite separar el código en paquetes pequeños que se cargan sólo cuando sea necesario).
Cabe aclarar que en este curso se utilizará las nuevas funcionalidades de Next.js "App Router"
Principales Métodos de Renderizado en Next.js: SSR e ISSR
Next.js ofrece múltiples estrategias de renderizado que lo diferencian de React tradicional, cada una con ventajas específicas para distintos escenarios de desarrollo web, entender estas características es fundamental para construir aplicaciones optimizadas.
1. Server-Side Rendering (SSR)
El SSR genera el HTML en cada solicitud del usuario, ideal para contenido dinámico que requiere datos actualizados, como dashboards o páginas personalizadas.
- Ventajas: Contenido siempre actualizado, mejor SEO.
- Desventajas: Mayor tiempo de respuesta, carga en servidor.
2. Incremental Static Regeneration (ISR)
El ISR permite regenerar páginas estáticas bajo demanda o en intervalos, sin tener que construir el sitio nuevamente.
- Ventajas: Mejor rendimiento, ya que. la página no se debe construir cada vez que el usuario la consulta.
- Desventajas: Primera visita puede recibir contenido desactualizado.
Recomendaciones para SEO
- Usar ISR para páginas públicas indexables
- Reservar SSR para dashboards privados
Gracias por tu calificación
(2)
Configuración Profesional del Entorno para Next.js
Preparar un entorno de desarrollo optimizado es el primer paso crucial para trabajar eficientemente con Next.js, esta guía cubre la instalación y configuración de todas las herramientas esenciales para un flujo de trabajo profesional.
1. Instalación de Node.js y Yarn
Next.js requiere Node.js (versión 18 o superior) como entorno de ejecución, se recomienda instalar la LTS (Long-Term Support) más reciente:
# Verificar instalación
node -v
npm -v
# Instalar Yarn (alternativa más rápida a npm)
npm install -g yarn
Para manejar múltiples versiones de Node.js, instalar nvm (Node Version Manager):
- En el siguiente post te explico todo respecto a NVM: Uso de NVM: ¿Cómo instalar NVM en Ubuntu y Windows?
# Linux/macOS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# Windows (usar nvm-windows)
choco install nvm
2. Configuración Óptima de VS Code
Extensiones esenciales para desarrollo con Next.js:
1. ESLint - Análisis de código
2. Prettier - Formateo automático
3. Tailwind CSS IntelliSense (si usas Tailwind)
4. REST Client - Alternativa a Postman
Ejercicio Práctico: Crear Proyecto Next.js con TypeScript
Paso 1: Inicialización del proyecto
npx create-next-app@latest
Paso 2: Configuración del proyecto
Al ejecutar create-next-app, verás las siguientes indicaciones que deberás responder según el tipo de proyecto que vayas a desarrollar:
What is your project named? curso-nextjs-ewebik
Would you like to use TypeScript? Yes
Would you like to use ESLint? Yes
Would you like to use Tailwind CSS? Yes
Would you like your code inside a `src/` directory? Yes
Would you like to use App Router? (recommended) Yes
Would you like to use Turbopack for `next dev`? Yes
Would you like to customize the import alias (`@/*` by default)? No
What import alias would you like configured? @/* //Esta última opción es lanzada si en el paso anterior respondesite "yes"
Paso 3: Estructura de archivos
Organización recomendada para proyectos profesionales:
├── src/
│ ├── app/ # Nuevo App Router
│ │ ├── page.tsx # Página principal
│ │ └── layout.tsx # Layout principal
│ ├── components/ # Componentes reutilizables
│ └── styles/ # Estilos globales
├── public/ # Assets estáticos
├── next.config.ts # Configuración avanzada
└── package.json # Dependencias y scripts
- Como indique al inicio la configuración utilizada para este curso es "App Router"
Gracias por tu calificación
(2)
Creación de tu Primer Proyecto Next.js con create-next-app
Iniciar un proyecto en Next.js 15 es más sencillo que nunca gracias a la herramienta create-next-app
, que configura automáticamente todas las dependencias y estructura de archivos necesarias para comenzar a desarrollar inmediatamente, este proceso incluye las últimas optimizaciones y características de Next.js.
1. Creación del Proyecto Base
Para iniciar un nuevo proyecto con todas las características de Next.js, ejecuta:
npx create-next-app@latest curso-nextjs-ewebik
Durante la instalación, el CLI te preguntará por varias opciones de configuración:
✔ Would you like to use TypeScript? Yes
✔ Would you like to use ESLint? Yes
✔ Would you like to use Tailwind CSS? Yes
✔ Would you like to use `src/` directory? Yes
✔ Would you like to use App Router? (recommended) Yes
✔ Would you like to customize the default import alias? No
3. Estructura de Archivos en Next.js 15
La nueva estructura generada incluye mejoras significativas:
curso-nextjs-ewebik/
├── src/
│ ├── app/ # Nuevo App Router
│ │ ├── page.tsx # Página principal
│ │ └── layout.tsx # Layout principal
│ ├── components/ # Componentes reutilizables
│ └── styles/ # Estilos globales
├── public/ # Assets estáticos
├── next.config.ts # Configuración avanzada
└── package.json # Dependencias y scripts
4. Características Principales de Next.js 15
La nueva versión introduce mejoras importantes:
- Compilador TurboPack estable: Builds hasta un 70% más rápidos
- Server Actions mejoradas: Manejo simplificado de formularios
- Soporte nativo para React 19: Compatibilidad con las últimas features
- Optimizaciones de caching automáticas: Mejor rendimiento out-of-the-box
Ejercicio Práctico: Primeros Pasos
Paso 1: Iniciar el Servidor de Desarrollo
Accede al directorio del proyecto y ejecuta:
cd curso-nextjs-ewebik
yarn dev
Esto iniciará el servidor en http://localhost:3000
con hot-reloading.
Paso 2: Modificar la Página Principal
Edita src/app/page.tsx
para crear tu primer componente:
export default function Home() {
return (
<main>
<h1>¡Bienvenido a Next.js by EWebik!</h1>
<p>Esta es mi primera página con las nuevas características</p>
</main>
)
}
Paso 3: Crear una Ruta Dinámica
Next.js 15 simplifica la creación de rutas dinámicas. Crea un nuevo archivo:
// src/app/products/[id]/page.tsx
export default function ProductPage({
params
}: {
params: { id: string }
}) {
return <p>Detalles del Producto: {params.id}</p>
}
Esta ruta responderá automáticamente a URLs como /products/1
.
Gracias por tu calificación
(2)
Tipos de Rutas y su Estructura en Next.js 15
En este Curso de Next.js desde cero, exploraremos el potente sistema de routing de Next.js 15, que ofrece múltiples formas de estructurar las rutas de tu aplicación para diferentes necesidades.
Rutas Estáticas Básicas
La forma más simple de crear rutas en Next.js 15 es mediante la estructura de carpetas en el directorio app
:
// app/about/page.tsx
export default function AboutPage() {
return (
<div className='page'>
<h1>Sobre Nosotros</h1>
<p>Esta es una página estática básica</p>
</div>
)
}
Esta estructura crea automáticamente la ruta /about, ideal para páginas fijas que no requieren parámetros dinámicos.
Rutas Dinámicas
Para páginas que aceptan parámetros variables, Next.js 15 usa carpetas entre corchetes:
// app/products/[id]/page.tsx
interface ProductPageProps {
params: {
id: string
}
}
export default function ProductPage({ params }: ProductPageProps) {
return (
<div className='product-page'>
<h1>Detalles del Producto {params.id}</h1>
{/* Contenido dinámico aquí */}
</div>
)
}
Esta estructura captura cualquier valor después de /products/ como parámetro id
.
Rutas de Grupo (Route Groups)
Permiten organizar rutas lógicamente sin afectar la URL, usando paréntesis en los nombres de carpeta:
app/
├── (auth)/
│ ├── login/
│ │ └── page.tsx # → /login
│ └── register/
│ └── page.tsx # → /register
└── (shop)/
├── products/
│ └── page.tsx # → /products
└── cart/
└── page.tsx # → /cart
Rutas Anidadas con Layouts
Next.js 15 permite layouts anidados que se heredan automáticamente:
// app/dashboard/layout.tsx
export default function DashboardLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<div className='dashboard-layout'>
<Sidebar />
<main className='dashboard-content'>
{children}
</main>
</div>
)
}
Todas las páginas dentro de /dashboard
heredarán este layout.
Rutas Paralelas (Parallel Routes)
Una característica avanzada que permite renderizar múltiples páginas simultáneamente:
// app/layout.tsx
export default function Layout({
children,
analytics,
notifications,
}: {
children: React.ReactNode
analytics: React.ReactNode
notifications: React.ReactNode
}) {
return (
<>
{children}
<aside className='sidebar'>
{analytics}
{notifications}
</aside>
</>
)
}
Rutas de API (API Routes)
Next.js 15 mantiene la capacidad de crear endpoints API:
// app/api/users/route.ts
import { NextResponse } from 'next/server'
export async function GET() {
const users = await getUsersFromDB()
return NextResponse.json(users)
}
Ejercicio Práctico: Implementando Múltiples Tipos de Rutas
Vamos a crear una estructura completa para una aplicación de e-learning:
1. Estructura de Archivos
app/
├── (main)/
│ ├── courses/
│ │ ├── [slug]/
│ │ │ ├── page.tsx
│ │ │ └── lessons/
│ │ │ └── [lessonId]/
│ │ └── categories/
│ │ └── [category]/
│ ├── about/
│ └── contact/
├── (admin)/
│ ├── dashboard/
│ ├── courses/
│ │ └── [id]/
│ │ ├── edit/
│ │ └── page.tsx
│ └── users/
├── api/
│ ├── courses/
│ └── users/
└── layout.tsx
Gracias por tu calificación
(2)
Diferencias fundamentales entre Pages Router y App Router en Next.js 15
Entender estas dos formas de manejar rutas en Next.js es crucial, el Pages Router es el sistema tradicional mientras que App Router representa la nueva forma recomendada de trabajar en Next.js 15.
¿Qué es Pages Router?
El sistema tradicional basado en la carpeta pages
donde cada archivo se convierte automáticamente en una ruta, este enfoque es ideal para Aprender Next.js por su simplicidad.
// Ejemplo básico de Pages Router
// pages/about.tsx
export default function About() {
return (
<div className='page'>
<h1>Sobre nosotros</h1>
<p>Página creada con Pages Router</p>
</div>
)
}
¿Qué es App Router?
El nuevo sistema introducido en Next.js 13 y mejorado en la versión 15, ubicado en la carpeta app
, ofrece mejor Optimización de rendimiento en Next.js y mejores características para el SEO en Next.js.
// Ejemplo equivalente en App Router
// app/about/page.tsx
export default function About() {
return (
<div className='page'>
<h1>Sobre nosotros</h1>
<p>Página creada con App Router</p>
</div>
)
// Metadatos para SEO
export const metadata = {
title: 'Sobre nosotros',
description: 'Conoce más sobre nuestro equipo'
}
}
Comparación técnica detallada
Vamos a analizar las diferencias clave que encontrarás al Configuración de Next.js con ambos sistemas:
Característica | Pages Router | App Router |
---|---|---|
Estructura | Archivos planos en /pages | Sistema de carpetas en /app |
Componentes | Solo Client Components | Server Components por defecto |
Carga de datos | getStaticProps/getServerSideProps | Fetch API directa en componentes |
SEO | Configuración básica | Metadatos dinámicos integrados |
Ejercicios prácticos
Para comprender realmente estas diferencias, hagamos ejercicios prácticos que puedes incluir en tu Aplicación web con Next.js.
Ejercicio 1: Migrar una página de Pages a App Router
Partamos de este componente en Pages Router:
// pages/blog/[slug].tsx
interface Post {
title: string
content: string
}
export default function PostPage({ post }: { post: Post }) {
return (
<article className='post'>
<h1>{post.title}</h1>
<div>{post.content}</div>
</article>
)
}
export async function getStaticProps({ params }) {
// Lógica para obtener el post
return { props: { post } }
}
Conviértelo a App Router implementando:
- Server Component
- Metadatos dinámicos
- Manejo de errores
Solución en App Router:
// app/blog/[slug]/page.tsx
interface Post {
title: string
content: string
}
export async function generateMetadata({ params }: { params: { slug: string } }) {
const post = await fetchPost(params.slug)
return {
title: post.title,
description: post.excerpt
}
}
export default async function PostPage({ params }: { params: { slug: string } }) {
try {
const post = await fetchPost(params.slug)
return (
<article className='post'>
<h1>{post.title}</h1>
<div>{post.content}</div>
</article>
)
} catch (error) {
return <ErrorPage />
}
}
async function fetchPost(slug: string): Promise<Post> {
// Implementación de obtención de datos
}
Ventajas clave de App Router
App Router ofrece:
- Mejor manejo de Rutas dinámicas en Next.js
- Carga más rápida gracias a Server Components
- Estructura más organizada para proyectos grandes
- Soporte integrado para streaming
- Mejor experiencia de desarrollo
Para comenzar con App Router en tu Instalación de Next.js, usa:
npx create-next-app@latest --ts --app
Este comando creará un proyecto nuevo con TypeScript y App Router configurado por defecto, la mejor forma de empezar cualquier proyecto con Next.js 15.
🧐 Autoevaluación: Curso de Next.js gratuito
¿Cuál es el comando correcto para iniciar un proyecto con Next.js 15 usando npm?
¿Qué carpeta es esencial para el sistema de routing en Next.js 15 cuando se usa App Router?
¿Qué archivo de configuración permite personalizar opciones avanzadas en Next.js 15?

Juan Carlos García
Desarrollador de software / SEO / Ing. eléctrico - electrónico UNAM
Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.
Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.