ADR-004 — Frontend web

Architecture decision record — status: Accepted.

Source: docs/adr/ADR-004-frontend-web.md

ADR-004: Frontend web

Estado

Accepted — 2026-08-23

Contexto

Superficies V1: marketing/landing (más adelante), auth, panel finance (customers, invoices, inbox, sequences, promises, disputes, dashboard). Usuarios en desktop/laptop. SEO importa en landing, no en el app autenticado.

Decisión

Next.js + React + TypeScript.

Librerías alineadas a IVPrior:

  • Tailwind CSS
  • shadcn/ui
  • TanStack Query
  • React Hook Form + Zod
  • Zustand solo si hay estado UI global liviano

App: apps/web. Organización por feature (ADR-007, ADR-011).

Alternativas

OpciónNota
Next.jsElegida — App Router, TS, factory
Vite SPASuficiente para el panel; peor para landing/SEO
Angular / VueRompe unicidad TS/React con IVPrior

Consecuencias

  • Convención Server vs Client Components documentada en el primer slice UI.
  • Design tokens en packages/ui cuando exista el scaffolding.
  • Inglés en UI V1 (ICP Estados Unidos).