Demo
Click an account to open its record: Every logo loads live fromimg.logo.dev: the list rows at size=20, the record header at size=56.
Build it with AI
Want logo-branded account lists and records in your app? This prompt gives your AI coding tool everything it needs to build it in your framework.
Code
This example is in React, but you can get the same result in any frontend framework: each logo is a plain image URL with asize parameter. AccountLogo.tsx holds the list row and the record header, and the Usage tab renders both with your publishable key.
Your publishable key is built for client-side code, so
you can ship it in the browser as-is.
How it works
- One image URL serves every size.
img.logo.dev/:domainreturns the company’s logo, and thesizeparameter scales it: 20 for table rows, 56 for the record header.retina=truekeeps both crisp. See all image parameters. - Accounts without a logo still render. When Logo.dev doesn’t have a logo for a domain, it returns a generated monogram instead of a broken image, so sparse CRM data never shows a gap. See fallback images.
- The domain is the key. Most CRMs already store a website on the account or derive one from contact emails, and that field is everything the logo needs.
- Long lists stay cheap. Rows fetch their logos only when they scroll into view, so a thousand-row account table loads like a short one.
Make it your own
- Attach companies with autocomplete. Use the company autocomplete when a rep creates an account, and store the returned domain.
- Harden the record header. Swap the plain
<img>for the logo from a domain component to handle companies without a logo. - Resolve names without domains. Use the logo from a name example for accounts that only have a company name.
Next steps
Logo API
See every size, format, and theme option for the image URL.
Company autocomplete
Capture a clean domain the moment a rep attaches a company.