Skip to main content
Start with company names and verified domains, then add a logo to each row. Keep the directory useful when an image is missing, a company changes its name, or the first match belongs to a parent company. Vizzy uses company branding in profiles and job boards. This recipe applies that pattern to a React directory.

Choose the logo source

Logo Link uses a public client ID. Configure allowed referring domains in the Logo Link dashboard, including the domains used for development and production. Keep secret API keys on the server when using Brand retrieval. Embed Logo Link images directly. Do not download, persist, or rehost the returned image files. Normal browser and CDN caching directed by the response headers is allowed.

Keep identity separate from presentation

Use your own company ID as the record key. A domain is an input to logo lookup; it should not replace the identity of an existing directory entry.
Directory model
Validate domains when importing or editing a company: accept a hostname such as stripe.com, and keep paths, email addresses, and unrelated platform domains out of the lookup field. Confirm the company when several entities share a name.

Render a resilient directory

This component receives persisted company records and an edit callback from your application. Copy Company and logoUrl above into the same module. The component key resets a failed image when the domain or display settings change.
CompanyDirectory.tsx
theme describes the background where the image will appear: light prefers a dark asset, and dark prefers a light asset. It does not recolor the company’s logo. Keep the company name visible even when every image is blocked.

Save corrections independently

Connect Edit brand to a form that can change the lookup domain or hide the logo. Save those decisions against the company ID in your database, with the editor and update time. Reload the saved record after a successful edit. On automatic enrichment, update domain but leave domainOverride and hideLogo untouched. Provide a separate Use automatic branding action that clears the override. This lets a correction survive a refresh without preventing future automatic updates. A logo does not establish affiliation, endorsement, or legal identity. Keep any such claims in separately verified directory fields.

Check the result

Try the directory with a known domain, no domain, and a deliberately unavailable image. Switch between light and dark backgrounds and between icons and wordmarks. Save a corrected domain, reload the page, then run enrichment again: the correction should remain.

Logo Link setup

Configure the public client ID, referring domains, and image parameters.

Branded documents

Use reviewed brand assets in reports and proposals.