Skip to content
12Caso de estudioSW · 12 de 10

Un sitio de marca mantenido durante cuatro años sin reescritura, para una OSC sin equipo web.

Una OSC europea de ayuda humanitaria se escaló de la noche a la mañana a principios de 2022. Construimos su sitio público en dos semanas y luego pasamos cuatro años haciéndole muy poco. Esa contención fue el trabajo.

ClienteConfidencial
Año2022 — 2026
Duración5 yrs
StackTypeScript · Next.js · React · Vercel
Hero image for humanitarian-aid-brand-siteFIG 01 · Hero

Un sitio para una organización cuyo trabajo no es el sitio.

El cliente es una pequeña OSC europea de ayuda humanitaria que pasó de ser una red de la diáspora a una operación de ayuda activa después de febrero de 2022. Cuando empezamos, ya coordinaban la entrega de suministros, alojamiento para personas desplazadas y equipamiento para los equipos de respuesta en el frente. El sitio web era lo último en lo que alguien pensaba, y esa era exactamente la prioridad correcta.

Sin equipo web. Sin product manager. Sin nadie cuyo trabajo fuera escribir tickets, aprobar textos o pastorear un CMS. El encargo no era un encargo de producto. Era un encargo de infraestructura: dadnos una cara pública que responda a la pregunta «¿quiénes sois y cómo puedo ayudar?», y luego no nos hagáis pensar en ello otra vez.

Esa restricción dio forma a todas las decisiones que siguieron.

Dos semanas. Bilingüe. Sin CMS.

Publicamos el sitio inicial en aproximadamente dos semanas, coincidiendo con el impulso operativo de mediados de 2022. Next.js sobre Vercel, Tailwind CSS, React. Bilingüe desde el primer día —inglés y la lengua materna de la organización— usando el enrutamiento i18n nativo de Next.js, sin biblioteca de terceros.

La decisión sobre el contenido fue deliberada: sin CMS. Sin Sanity, sin Contentful, sin Strapi. Todo el contenido —descripciones de proyectos, listas de socios, áreas de enfoque, tramos de donación— vive en objetos TypeScript tipados en /data/<locale>/, versionados junto al código. Actualizar un texto es un commit de git. No hay login, no hay interfaz de editor, no hay pipeline de despliegue para el que el equipo deba formarse.

También dejamos fuera: bibliotecas de animación, rutas de API, una base de datos en tiempo de ejecución, una capa de limitación de tasa, una superficie de autenticación a medida. Nada de eso era necesario. El flujo de donación sale del sitio hacia raíles de donación dedicados. El trabajo del sitio es informar y dirigir, no transaccionar.

Generación estática de principio a fin. El build produce HTML. Vercel lo sirve. Lo único que puede salir mal es que falle un build, y los builds no despiertan a nadie a las 3 de la madrugada.

F · 01Sitio estático bilingüe
Inglés y la lengua materna de la organización desde el primer día. Enrutamiento i18n nativo de Next.js, paridad completa de contenido, sin biblioteca i18n de terceros.
F · 02Contenido como código
Todo el texto vive en objetos TypeScript tipados en /data/<locale>/, versionados. Sin login de CMS, sin interfaz de editor, sin pipeline de despliegue que aprender.
F · 03Generación estática de principio a fin
Cada página prerenderizada en tiempo de build. Sin rutas de API, sin base de datos en tiempo de ejecución, sin rotación de guardia para la infraestructura.
F · 04Dos versiones mayores de Next.js cruzadas
El código base pasó de Next.js 12 a 14 y a 16 sin reescritura. Elecciones de stack que envejecen bien.
F · 05Modo oscuro mediante clase CSS
Zustand mantiene el estado del toggle; localStorage lo persiste. Sin parpadeo al recargar. Sin biblioteca de theming de terceros.
F · 06Cero reescrituras en cuatro años
La arquitectura trazada en el sprint inicial es la arquitectura en producción hoy.

Doce meses de silencio, luego un único commit.

Tras el sprint inicial: silencio. De agosto de 2022 a mayo de 2023, el código base no recibió ningún cambio. El sitio aguantó. La organización estaba entregando ayuda. Ese era el estado de cosas correcto.

Junio de 2023: un commit. Analítica. Julio de 2024: nueve commits. Un pequeño sprint de mantenimiento: actualización de Next.js, cambio de una biblioteca de carrusel, higiene de dependencias. Nada estructural.

Marzo–abril de 2026: la renovación actual. Un refresco de diseño, una pasada completa de móvil, migración a Tailwind v4, mejoras de SEO. El código base cruzó dos versiones mayores de Next.js —de la 12 a la 14 y a la 16— sin reescritura.

240 commits a lo largo de cuatro años. El patrón de ráfagas es honesto: la mayor parte del trabajo ocurrió al principio, y luego al final. El largo intervalo intermedio fue el sitio funcionando.

La cantidad correcta de ingeniería para una OSC es la que desaparece.

El sitio no ha sido un problema en el que la organización haya tenido que pensar. Ese es el resultado. No una tasa de conversión, no una tasa de rebote: la ausencia del sitio como fuente de fricción.

El mismo código base que se publicó en 2022 es el código base en producción hoy. El mismo equipo que lo construyó lo mantiene. Sin trauma de migración, sin la conversación de «necesitamos reconstruir esto sobre un stack moderno», porque el stack se eligió con el cuidado suficiente para seguir siendo moderno sin intervención constante. Bun reemplazó a Node como runtime. Biome reemplazó a ESLint y Prettier. Tailwind v4 reemplazó a la v3. Todo ello fue aditivo: ninguna deuda arquitectónica que desenredar.

Cuatro años. Dos versiones mayores de Next.js cruzadas (12 → 14 → 16). Cero reescrituras. 240 commits. Un solo equipo.

Cita destacada / 04
El sitio no ha sido un problema en el que hayamos tenido que pensar.
DirectoraOSC de ayuda humanitariaEuropa
Outcome
Initial sprint
~2 weeks
Years in production
4
Next.js majors crossed
2 (12 → 14 → 16)
Commits over four years
240
NEXTCaso de estudio 13SW · 13 de 10
E-commerce2026

Comercio bajo pedido para un mercado que necesita su propio stack.