Skip to main content
Use case prompt
A trusted-by wall needs the wide wordmark of each customer, not the square icon. A row of square icons looks like an app grid, and visitors recognize the wide lockups. Logo.dev supplies each customer’s brandmark from a domain. Your app decides which customers to show, where to host the files, and how tall each mark renders so that the row reads evenly.

Download the brandmarks at build time

A marketing wall is static, so download each brandmark once and host it with your site. Don’t put the lookup url in your page. Keep the etag with your copy, and download again only when the etag changes. See images for how the url and etag work. This script runs on your server or in CI. It downloads a light and a dark variant of each brandmark and writes a manifest for the wall:
fetch-brandmarks.ts
Run the script on deploy or on a schedule, not on each page view.

Handle every brandmark result

Some well-known brands have no brandmark, so the wall always needs the square logo as a fallback. Check each brandmark by eye before you ship. Some marks are white or very light, and they disappear on a light surface.

Render the wall

The wall reads the manifest and shows the light or dark file for your theme:

Test the wall

Load the wall in light and dark mode, and check that every mark is legible in both. Add made-up-startup.io, which has no brand. Rename one hosted file to force a load error. Both slots must show the square logo. Run the script twice, and check that the second run downloads nothing new.

Brand

Look up a brandmark, and read how image downloads and etags work.

Animated logo wall

Swap square logos over time in a compact grid.