Volver a Trabajo seleccionado

Trabajo profesional · Arquitectura

Webel

Marketplace de servicios a domicilio. Soy responsable de todo el departamento web: la app B2C, la plataforma B2B, el dashboard interno, SEO, emails y la librería de componentes compartida.

Empresa
Webel
Periodo
Finales de 2024 — actualidad
Papel
Lead Frontend Engineer
Alcance
Todo el departamento web: app B2C, plataforma B2B, dashboard interno, SEO, emails y librería compartida.
Estado
En producción

Problema y contexto

Webel conecta a quien necesita un servicio en casa con el profesional que lo hace. Esa operación pasa por tres aplicaciones con usuarios y ritmos distintos —clientes, profesionales y el equipo interno—, más la superficie de SEO y los emails que las acompañan. Venían de épocas distintas del producto y compartían poco entre ellas.

Para quiénClientes que contratan un servicio, profesionales y empresas que lo prestan, y el equipo interno que opera el marketplace.

Mi responsabilidad

Llevo todo el departamento web. Decido la arquitectura, sigo escribiendo la implementación y mantengo lo que llega a producción. Producto define los requisitos; yo cierro las decisiones técnicas.

Las tres aplicaciones

La app B2C, que usan miles de personas al día. La plataforma B2B permite a las empresas gestionar equipos, servicios, calendarios, leads, chat, áreas de servicio, datos fiscales y cobros. El dashboard interno completa la operación del marketplace.

Un solo stack

Migré el marketplace B2C de Angular a React, extraje el design system a una librería de componentes que hoy consumen B2C, B2B y dashboard, llevé los emails a React Email y monté la superficie de SEO en Astro.

Trabajo con agentes

Escribo las especificaciones y las skills con las que trabajan los agentes, y mantengo al día la documentación del design system para poder revisar lo que producen. El código, las pruebas y la decisión final los reviso yo.

Qué más incluye

  • SEO programático y datos estructurados.
  • Emails transaccionales.
  • Flujos de DAC7, reclamaciones y captación de leads.
  • Rediseños responsive de aplicaciones que solo funcionaban en escritorio.

Dónde acaba mi parte

Producto define los requisitos y prioriza. Entro en el alcance y propongo alternativas cuando veo una más simple, pero la decisión de producto no es mía. La UI la trabajo con Diseño. Dentro de web reviso el trabajo y las pull requests de otro developer.

Decisiones

  1. Unificar el stack en React

    Situación
    El marketplace B2C estaba en Angular y el resto del web ya era React. Cualquier criterio nuevo había que tomarlo dos veces, y la parte antigua se tocaba lo justo.
    Qué decidí
    Migrar el marketplace a React en lugar de mantener dos plataformas en paralelo.
    Por qué
    El coste de la migración era acotado y se podía estimar. El de sostener dos frameworks crecía con cada funcionalidad nueva.
    Qué cambió
    Las aplicaciones grandes comparten lenguaje y criterios. Dejamos de repetir el mismo trabajo entre Angular y React y resulta más sencillo mantener lo que ya está en producción.
  2. Sacar el design system a una librería compartida

    Situación
    B2C, B2B y dashboard repetían botones, formularios y tablas con tres versiones ligeramente distintas de cada cosa.
    Qué decidí
    Extraer las bases de UI a una librería de componentes propia y consumirla desde los tres productos.
    Por qué
    Un arreglo de accesibilidad o un cambio de marca tenía que hacerse una vez, no tres.
    Qué cambió
    Los tres productos parten de los mismos componentes. Los cambios de marca, accesibilidad y comportamiento se hacen una vez, con menos inconsistencias y menos cambios repetidos.
  3. Llevar el SEO a Astro y no a React

    Situación
    La superficie de SEO es contenido: muchas páginas generadas y poca interacción. Montarla con el mismo React que el resto era la opción cómoda.
    Qué decidí
    Construirla en Astro, con HTML estático y datos estructurados.
    Por qué
    En páginas de contenido, mandar un runtime de React al navegador es coste sin contrapartida. Astro sirve HTML y solo hidrata lo que lo necesita.
    Qué cambió
    Las páginas de contenido cargan HTML estático con menos JavaScript y se publican sin depender de los ciclos de las aplicaciones.

Resultado

  • Unificar Angular y React eliminó trabajo duplicado y simplificó el mantenimiento de las aplicaciones existentes.

    EvidenciaB2C y B2B comparten ahora React, convenciones y herramientas de revisión.

  • La librería compartida redujo inconsistencias y cambios repetidos entre B2C, B2B y dashboard.

    EvidenciaLos tres productos consumen hoy los mismos componentes base.

  • Astro mejoró el rendimiento de las páginas de contenido y permitió publicarlas sin tocar las aplicaciones.

    EvidenciaHTML estático, datos estructurados y JavaScript solo donde hay interacción.

  • El flujo con agentes aumentó la frecuencia de entrega y redujo errores y retrabajo.

    EvidenciaCada tarea parte de una especificación, contexto y skills; después pasa por pruebas y revisión del código y del resultado.

Sobre las cifrasLas cifras de plantillas de SEO, volumen de emails y usuarios totales son internas y no se publican aquí.

Stack

  • React
  • TypeScript
  • TailwindCSS
  • Astro
  • React Email
  • Stripe

Enlaces