Ask for a URL at signup, pull the real brand palette and typefaces, and render their workspace in their own colors before they have configured anything.
You run a SaaS with any kind of white-labeling, branded output, or customer-facing theme - and today you make people pick colors out of a swatch grid.
A new customer signs up and lands in a grey, generic app. The theming exists, but it is behind a settings page they have not visited. Most never will - and the first impression they form is of a tool that looks nothing like their company, at exactly the moment you most needed it to feel like theirs.
A color picker in onboarding is friction dressed up as personalization. People do not know their brand hexes by heart, they do not want to go find them, and every extra step in a signup flow is somewhere to drop off. The information you want is already public - it is on their website.
Ask for their URL - a field they will happily fill in. Call /v1/brand and get back the palette, the typefaces, and the logo, resolved from what the site actually renders. Theme the workspace before they see it. The whole thing costs 15 credits and one input.
One field in signup. Far lower friction than a color picker, and people expect to be asked.
/v1/brand15 creditsPalette, typefaces and logo resolved from the live page.
Map the colors into your CSS variables. They land in a workspace that is already theirs.
Keep the settings page. Most people will never need it, which is the point.
// at signup, after they give you their URL
const brand = await fetch(
`https://miromiro.app/api/v1/brand?url=${customerUrl}&access_key=${process.env.MIROMIRO_API_KEY}`
).then(r => r.json())
// → { colors: ["#0a2540", "#635bff"], fontFamilies: ["Sohne"], logo: "https://…" }
applyTheme({
primary: brand.colors[0],
accent: brand.colors[1],
font: brand.fontFamilies[0],
logo: brand.logo
})What you get: A first session that looks like their company instead of yours - with no configuration step and no color picker.
You get whatever the page actually renders, ranked by prominence. It is worth keeping a sane default and a manual override for the cases where a site is genuinely unbranded or the extraction is not what they would have picked - treat it as a strong default, not a decision you make for them.
Brandfetch returns a curated brand record for a domain, which is great when a company is in their database. MiroMiro reads the live page, so it works for any URL and returns more than brand marks - the spacing scale, gradients and motion too. For logo-only lookup at high volume, Brandfetch's Logo API is free and probably the better call.
/v1/brand is 15 credits. The €19/month Developer tier includes 5,000 credits, so roughly 333 branded onboardings a month - and far more if you only need colors (10 credits) rather than a full brand profile.
100 free credits, no credit card. Point it at a URL and see what comes back.
Get a free API key