EN|ES
← projects/
catoca.tsxIn production

CATOCA

Online store and brand site for a single-origin coffee from the Sierra Nevada

company:
CATOCA (client)
period:
Jul 2026 — present
  • React 19
  • Vite
  • TypeScript
  • Tailwind CSS v4
  • anime.js
  • React Router 7
  • Vercel Functions
  • Wompi (payments)
  • Gmail API

// problem

The brand needed a site that was both a showcase, to tell the coffee's origin story, and a direct sales channel, with a reliable checkout for the Colombian market (card, PSE, Nequi or cash) and without paying for an e-commerce platform.

// my role

Full stack development: redesign of the interface and frontend architecture, Vercel serverless functions for checkout, Wompi and Gmail API integration, and image and animation optimization.

// technical decisions

Amounts signed on the server, not in the browser

The serverless function builds the order with the server's catalog prices and generates the SHA-256 integrity signature Wompi requires. The browser only sends which products and how many, so nobody can pay a price that isn't the store's.

Stateless checkout session with an HMAC token

Vercel functions don't share memory, so the checkout session travels with the client as an HMAC-signed token; /api/wompi/confirm verifies it with a constant-time comparison before confirming the order and sending emails.

Verified Wompi events and emails with retries

The events webhook validates Wompi's checksum before accepting a payment. Emails to the customer and the store go out through the Gmail API, with backoff retries, token refresh and HTML escaping to prevent injection.

Performance and accessible motion

I converted the images to WebP (from 33.8 MB to 1.4 MB) and every anime.js animation respects prefers-reduced-motion.

// impact

Image weight
-96%

33.8 MB → 1.4 MB in WebP

Routes
7

home · store · product · cart · checkout · origin · contact

Payment methods
4

card · PSE · Nequi · cash (Wompi)

Hosting
Vercel

SPA + serverless functions

// screenshots

Home: coffee from the Sierra Nevada de Santa Marta
Home: coffee from the Sierra Nevada de Santa Marta
Store with filters by presentation and price sorting
Store with filters by presentation and price sorting
Product page with roast, acidity and body
Product page with roast, acidity and body
Side cart after adding a product
Side cart after adding a product
Checkout: shipping details and payment with Wompi
Checkout: shipping details and payment with Wompi
“Our origin” page
“Our origin” page
Home on mobile

Project for a real client. The repository is private; the site is live at catoca.cafe.