projects

Brandpull

Paste any website, instantly pull its logos, colors, fonts, and hero images. No signup.

  • Next.js
  • Hono
  • Cloudflare Workers
  • KV
  • Docker

01 · what it is

Brandpull takes a URL and hands back the site's brand: logos, color palette, fonts, and hero imagery. No account, no upload, paste and go. It runs on Cloudflare Workers behind a Hono API, so the whole thing lives at the edge.

02 · how it works

Edge-native, not edge-adjacent

The extraction API is a Worker, not a container sitting behind a CDN. Results are cached in KV keyed by origin, which puts repeat lookups under 100ms because the answer is already in the same region as the request.

Rate limiting on an open endpoint

An extraction endpoint with no signup is an invitation to scrape with. Requests are rate limited per client so a single caller can't spend the whole budget.

A build that ships nothing it doesn't need

The Docker image is a three-stage build. Dependencies and compilation happen in the earlier stages, and the final image carries only the built output, with no Bun runtime coming along for the ride.

03 · what I learned

Working inside Workers' constraints was the useful part. There's no long-running process to lean on and a hard CPU budget per request, so caching stops being an optimization you bolt on later and becomes part of the design. I also learned how much of "a brand" is guesswork: sites describe themselves inconsistently, and a good extractor is mostly a stack of heuristics with sensible fallbacks.