Daniel Howells

The Tensile Prototype

2024-09-15

Before joining Materia full-time, I built Tensile -- a rapid prototype exploring what the next generation of the platform could look like. NFC scanning for physical material samples, side-by-side comparison tools, palette-based search, and AI-powered categorisation. The goal wasn't to build production software. It was to answer questions fast enough that the answers were still useful.

The cloud-first image architecture was a deliberate constraint from day one. Every image went straight to managed object storage -- no local filesystem, no temp directories, no cleanup scripts. The database stored URLs, not files. This sounds obvious, but it eliminated an entire category of problems: disk space management, deployment concerns about persistent storage, image serving performance. When you're iterating on prototypes weekly, the less infrastructure you manage, the more time you spend on the actual product questions.

Tensile used a Turborepo monorepo structure: a Next.js web app, a shared database package on Drizzle, a Crawlee-based scraper for ingesting product data, and a hosted storage integration. The scraper was the most complex piece -- handling rate limits, deduplication across product variants, and extracting structured data from pages that weren't designed to be scraped. Crawlee's intelligent crawling handled most of the retry and queue management, but the deduplication logic was custom. Materials come in dozens of variants (colours, finishes, sizes) and the system needed to understand which images represented the same base product versus genuinely different items.

The real output of Tensile wasn't the code -- it was the decisions it validated. Over six months at Materia, I built four prototypes. Two of them shipped to production in some form. The other two answered questions that saved weeks of building the wrong thing. NFC scanning worked but the hardware constraints made it impractical for the initial launch. The comparison tool shipped almost unchanged. Palette search evolved into the colour search system using OKLab perceptual colour space. AI categorisation proved the concept but needed significantly more training data for production accuracy. Each prototype took two to three weeks and replaced months of speculation with concrete evidence about what users actually needed.