# Arquitectura

## Decision Principal

Next.js + CMS JSON interno.

Se eligio esta arquitectura porque permite velocidad, control SEO y bajo costo inicial. Evita depender de plugins, reduce mantenimiento y permite crecer luego hacia un CMS externo.

## Carpetas

- `app`: rutas publicas, admin, API, RSS, robots y sitemap.
- `components`: componentes reutilizables.
- `content`: datos editoriales.
- `lib`: lectura/escritura CMS, autenticacion, tipos y SEO.
- `docs`: documentacion.

## Flujo Publico

1. Las paginas leen datos desde `lib/cms.ts`.
2. El contenido viene de `content/*.json`.
3. Las notas generan metadatos y Schema NewsArticle.
4. Sitemap, robots y RSS se generan dinamicamente.

## Flujo Admin

1. El editor entra en `/admin/login`.
2. La API valida `ADMIN_PASSWORD`.
3. Se crea cookie HTTP-only.
4. `/admin` consume `/api/admin/posts`.
5. Al guardar, la API escribe en `content/posts.json`.

## Escalabilidad

Para crecer:

- Reemplazar `content/posts.json` por base de datos.
- Mantener componentes y rutas.
- Cambiar solo `lib/cms.ts` y endpoints.
- Agregar roles reales para periodistas, editores y administradores.
