Fetch brand data from the brand.dev API and save logos locally for serving.
Extract the target domain from the user's input. Strip protocol and trailing slashes (e.g., "https://example.com/" -> "example.com").
# BRANDDEV_API_KEY must be set in your environment
curl -s "https://api.brand.dev/v1/brand/retrieve?domain=${DOMAIN}" \
-H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
-H "Content-Type: application/json"
Extract from the response:
- Brand name (.brand.title or .brand.name)
- Description (.brand.description)
- Logo URLs (from .brand.logos[]) — prefer icon/square logos for card layouts, full logos for headers
- Industry/category if available
ALWAYS download logos locally for serving. Never reference external media.brand.dev URLs in production code — they can change or go down.
The save location depends on the project. Look for existing patterns:
- Next.js / static sites: public/logos/<context>/ (served as /logos/<context>/)
- Other web projects: check for existing static/, assets/, images/, or public/ directories
- If no convention exists: create a logos/ directory under the project's static asset root
<brand-slug>.<ext> where:<brand-slug> is the lowercase brand name, spaces replaced by hyphens (e.g., miss-a not miss_a)<ext> matches the original file extension (png, webp, jpg, svg)partners/, customers/) if the project has multiple logo collectionsmkdir -p <logo-dir>
curl -sL "<logo-url>" -o "<logo-dir>/<brand-slug>.<ext>"
ls -la <logo-dir>/<brand-slug>.<ext>
Provide the user with: - Brand name - Description - Industry - Local logo path — the path to use in code (relative to the project's static root) - Original source URL (for reference only)
media.brand.dev URLs directly in production code.