Your logo and name throughout

The sign-in screen, the browser tab icon and the preview card when someone shares a link all carry the builder's brand, not the platform's.

What it is

Branding is resolved from the request host — subdomain or verified custom domain — and used in two places that most software leaves generic: the sign-in page header and the page metadata (favicon, Open Graph and Twitter card). The company name, logo and brand colour come from the same settings record the invoices and portal read.

Also called: white label branding · our logo on the login · branded tab icon · link preview branding

See it
Your logo and name throughout
Day rate
$500
Days figured
10
Crew size
5
Fuel & equipment
$300
Finished 2 days early — $1,600 back to the crew
A browser tab strip showing the tenant's favicon, plus an iMessage-style link preview card carrying the builder's logo and company name. Metadata comes from src/app/layout.tsx generateMetadata(). Sample data — no customer information appears here.
How it works
  1. 1resolveTenantBranding(host) resolves the host to an org, then reads logo_url, company_name and brand_color from invoice_settings.
  2. 2The sign-in page passes that branding into the sign-in card so the header shows the builder's logo and name.
  3. 3The root layout's generateMetadata() sets the favicon, page title and OG/Twitter images from the same result.
  4. 4absolutizeUrl() converts a relative logo path into an absolute URL, because link-preview scrapers refuse relative paths.
  5. 5Apex, preview and local hosts return null so the platform's own defaults apply.
  6. 6A suspended org resolves to no branding at all.
Why we built it

Two details in this module show what it was fixed against. First, absolute URLs: 'Twitter and Facebook only follow absolute URLs in og:image' — a relative logo silently produced a blank preview card. Second, the suspension rule, stated as a judgement rather than a technicality: suspended orgs 'are treated as no-tenant on purpose — a frozen org shouldn't keep branding the platform that turned them off.' The layout also notes that the file-based icon convention had to be removed entirely, because 'src/app/icon.png overrides metadata.icons' and would have pinned every tenant to the platform mark.

The problem
  • A builder's staff and customers landing on a generically-branded sign-in page.
  • Shared links previewing with the platform's logo in messaging apps.
  • Branding that has to be configured twice, once for documents and once for the app.
Sound familiar?
What you get
Your logo appears on the login screen your crew uses every morning.
A link pasted into a text or Slack message previews with your company's name and mark.
One branding record drives invoices, the portal, the app chrome and link previews.
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →