EN|ES
← proyectos/
catoca.tsxEn producción

CATOCA

Tienda en línea y sitio de marca de un café de origen de la Sierra Nevada

empresa:
CATOCA (cliente)
periodo:
Jul 2026 — actualidad
  • React 19
  • Vite
  • TypeScript
  • Tailwind CSS v4
  • anime.js
  • React Router 7
  • Vercel Functions
  • Wompi (pagos)
  • Gmail API

// problema

La marca necesitaba un sitio que fuera a la vez vitrina, para contar el origen del café, y canal de venta directa, con un checkout confiable para el mercado colombiano (tarjeta, PSE, Nequi o efectivo) y sin pagar una plataforma de e-commerce.

// mi rol

Desarrollo full stack: rediseño de la interfaz y de la arquitectura del frontend, funciones serverless en Vercel para el checkout, integración de Wompi y de Gmail API, y optimización de imágenes y animaciones.

// decisiones técnicas

Montos firmados en el servidor, no en el navegador

La función serverless arma el pedido con los precios del catálogo del servidor y genera la firma de integridad SHA-256 que exige Wompi. El navegador solo envía qué productos y cuántos, así que nadie puede pagar un precio que no es el de la tienda.

Sesión de compra sin estado con un token HMAC

Las funciones de Vercel no comparten memoria, así que la sesión de compra viaja con el cliente como un token firmado con HMAC; /api/wompi/confirm lo verifica con comparación en tiempo constante antes de confirmar el pedido y enviar los correos.

Eventos de Wompi verificados y correos con reintentos

El webhook de eventos valida el checksum de Wompi antes de aceptar un pago. Los correos al cliente y a la tienda salen por Gmail API, con reintentos con backoff, renovación del token y escape del HTML para evitar inyecciones.

Rendimiento y movimiento accesibles

Pasé las imágenes a WebP (de 33,8 MB a 1,4 MB) y todas las animaciones de anime.js respetan prefers-reduced-motion.

// impacto

Peso de imágenes
-96%

33,8 MB → 1,4 MB en WebP

Rutas
7

home · tienda · producto · carrito · checkout · origen · contacto

Medios de pago
4

tarjeta · PSE · Nequi · efectivo (Wompi)

Hosting
Vercel

SPA + funciones serverless

// capturas

Portada: café de la Sierra Nevada de Santa Marta
Portada: café de la Sierra Nevada de Santa Marta
Tienda con filtros por presentación y orden por precio
Tienda con filtros por presentación y orden por precio
Ficha de producto con tueste, acidez y cuerpo
Ficha de producto con tueste, acidez y cuerpo
Carrito lateral al añadir un producto
Carrito lateral al añadir un producto
Checkout: datos de envío y pago con Wompi
Checkout: datos de envío y pago con Wompi
Página «Nuestro origen»
Página «Nuestro origen»
Portada en móvil

Proyecto para un cliente real. El repositorio es privado; el sitio está en vivo en catoca.cafe.