Anatomía de un proyecto

Los archivos y carpetas que vas a encontrar en cualquier proyecto de código, y para qué sirve cada uno.

La estructura de un proyecto

Cuando abrís un proyecto de código por primera vez, ves un montón de archivos y carpetas con nombres que parecen crípticos. Pero cada uno tiene un propósito claro. Esta guía te explica los más comunes para que puedas orientarte en cualquier proyecto de código.

Si te sirve una imagen mental, un proyecto web con Next.js y Node.js suele verse más o menos así:

mi-app/ ├── package.json ├── .env.local ├── public/ │ └── logo.svg └── src/ ├── pages/ │ ├── index.jsx │ └── api/ │ └── users.js ├── components/ │ └── Header.jsx ├── lib/ │ └── db.js └── styles/ └── globals.css

No hace falta memorizar este árbol. Lo importante es entender la lógica: pages/ define rutas, components/ guarda piezas reutilizables, lib/ concentra lógica compartida y public/ contiene archivos estáticos.

Componentes comunes de interfaz

Estos son nombres que vas a encontrar una y otra vez en la carpeta components/ o src/:

Nombre en códigoQué esQué hace
Header / NavbarBarra superiorNavegación principal, logo, menú, botones de acción
FooterPie de páginaLinks secundarios, copyright, redes sociales
SidebarBarra lateralNavegación secundaria, filtros, menú colapsable
LayoutEstructura baseEnvuelve todas las páginas con header, footer, sidebar
Modal / DialogVentana emergenteConfirmaciones, formularios, alertas que aparecen encima del contenido
CardTarjetaBloque visual que agrupa información (producto, artículo, usuario)
ButtonBotónAcción clickeable con variantes (primary, secondary, danger)
Input / TextFieldCampo de textoDonde el usuario escribe datos
FormFormularioAgrupa inputs y maneja el envío de datos
AvatarImagen de perfilFoto circular del usuario
BadgeEtiquetaIndicador pequeño (conteo de notificaciones, estado)
TooltipTexto emergenteInformación extra al pasar el mouse sobre algo
Dropdown / SelectMenú desplegableLista de opciones que se abre al hacer click
TabsPestañasNavegación entre secciones dentro de una misma vista
BreadcrumbMigas de panMuestra la ruta de navegación (Home > Productos > Detalle)
Spinner / LoaderIndicador de cargaAnimación mientras se carga contenido
Toast / SnackbarNotificación temporalMensaje que aparece brevemente y desaparece solo
PaginationPaginadorControles para navegar entre páginas de resultados

Archivos de configuración

En la raíz del proyecto vas a encontrar archivos que no son código de la app, sino configuración:

ArchivoPara qué sirve
package.jsonLista de dependencias y scripts del proyecto
.env / .env.localVariables de entorno (claves de API, configuración secreta)
README.mdDocumentación del proyecto — qué es, cómo instalarlo, cómo usarlo
.gitignoreArchivos que Git debe ignorar (node_modules, .env, etc.)
tsconfig.jsonConfiguración de TypeScript
next.config.jsConfiguración de Next.js
tailwind.config.jsConfiguración de Tailwind CSS
DockerfileInstrucciones para crear un contenedor
.eslintrcReglas de estilo de código

Carpetas típicas

CarpetaQué contiene
src/Todo el código fuente de la aplicación
components/Componentes reutilizables de interfaz
pages/ o app/Las rutas/páginas de la aplicación
api/Endpoints del backend
lib/ o utils/Funciones auxiliares y lógica compartida
hooks/Hooks personalizados (lógica reutilizable en React)
contexts/Contextos de React para estado global
styles/Archivos CSS y estilos
public/Archivos estáticos (imágenes, favicons, fuentes)
tests/ o tests/Tests del proyecto
node_modules/Dependencias instaladas (no se toca manualmente)

¿Por qué importa?

Cuando le pedís a una AI que te ayude con tu proyecto, saber cómo se llaman las cosas hace toda la diferencia. No es lo mismo decir "quiero un cosito arriba" que "necesito un Header con navegación y un botón de dark mode". Los nombres son un lenguaje compartido entre programadores — y ahora también entre vos y tu modelo de AI.