The Challenge
What Mixmatch Color Was Facing
Mixmatch Color allows designers and product teams to find perceptually accurate colour matches across paint, textile, and digital colour systems. The core engineering challenge was building a matching engine that operated in perceptual colour space (CIELAB) rather than RGB — a fundamentally different distance metric — and serving visually accurate swatch renderings at low latency without pre-rendering every possible colour combination.
The Solution
What We Built
We implemented the colour matching engine using a vector similarity search on CIELAB colour embeddings stored in pgvector, an extension to PostgreSQL that enables approximate nearest-neighbour search. The swatch rendering service generated colour chip images on demand via a Node.js Sharp pipeline running on Lambda, with aggressively cached outputs in CloudFront keyed by colour code and format. The API was designed REST-first with predictable, cacheable URL structures so CDN hit rates were maximised. Colour database updates — new paint ranges, textile collections — were ingested via a background job that recomputed embeddings and updated the pgvector index with zero downtime using index swapping.

Results
