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.