Email Branding
Customize how Koolbase's transactional emails look to your users. Display name, from name, reply-to address, logo, primary color, and verified custom sender domains — all configurable per project from the dashboard.
Where this applies
Email branding affects the three transactional emails Koolbase sends on your behalf:
- Verification emails sent at signup
- Password reset emails sent when users request a reset
- "No account" courtesy emails sent when a reset is requested for an unregistered address — a UX nicety that lets the user know they probably signed up with a different email
Visual branding settings live under Branding in your project sidebar. Custom domains live under Sender Domains.
Display name
The display name is the brand identifier shown throughout the email body — subject lines, headers (when no logo is set), and footer copyright. It also flows through to other settings as a fallback when they're blank.
Falls back to: your project name. If your project is called "StrideHx Inc" and you don't set a display name, all emails read "StrideHx Inc" by default.
From name
The display name in the From: header of the email — what recipients see in their inbox preview alongside the actual sender address (e.g., StrideHx Inc <auth@koolbase.com>).
Falls back to: the display name, then the project name. Most projects set this once and forget it.
Reply-to email
Where replies to transactional emails should route. When set, Koolbase adds a Reply-To: header so any reply from the recipient goes directly to your address instead of bouncing off the shared Koolbase sender.
Leave blank if you don't want recipients to reply at all — the Reply-To header simply won't be set.
Logo
Logo image rendered at the top of every transactional email, replacing the text display name in the header. When no logo is uploaded, the display name renders as bold white text.
- Format: PNG or JPEG only. SVGs aren't supported — mail clients render them inconsistently.
- Size limit: 1 MB.
- Rendered height: 40px, scaled proportionally.
Designs that look right on dark backgrounds
#0a0c10). Logos designed for white backgrounds — black text or dark elements — won't be visible. Use a transparent PNG with light or white-colored designs, or a logo with built-in contrast.Primary color
Accent color used as the background of primary buttons in transactional emails — specifically the "Verify Email" and "Reset Password" buttons. Six-digit hex format (e.g., #E63946).
Falls back to: Koolbase blue (#2b8cee) when blank.
Button text picks its color automatically
Sender domains
By default, Koolbase's transactional emails send from the shared auth@koolbase.com address. To send from your own domain (e.g., noreply@yourdomain.com), register and verify a custom sender domain.
Each project can register multiple domains and switch between them, but only one is the active sender at a time.
1. Add your domain
From the Sender Domains tab in your project sidebar, click Add domain and enter the root domain or subdomain you want to send from. Koolbase registers it with our delivery provider and returns the DNS records you need to publish.
curl -X POST https://api.koolbase.com/v1/projects/{project_id}/domains \
-H "Authorization: Bearer YOUR_DASHBOARD_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "domain": "yourdomain.com" }'2. Publish the DNS records
The response includes a list of DNS records — typically one MX (SPF), one TXT (SPF), and two or three CNAME (DKIM) records. Add each one at your DNS provider. Each card in the Sender Domains tab has copy buttons so you can paste the values directly.
[
{
"type": "MX",
"name": "send",
"value": "feedback-smtp.us-east-1.amazonses.com",
"priority": 10,
"ttl": "Auto"
},
{
"type": "TXT",
"name": "send",
"value": "\"v=spf1 include:amazonses.com ~all\""
},
{
"type": "CNAME",
"name": "{selector}._domainkey",
"value": "{selector}.dkim.amazonses.com."
}
]Trailing dots and DNS providers
3. Verify
After publishing your records, click Verify on the domain card. Koolbase triggers a DNS check on our delivery provider; the status updates from pending to verified once the records resolve correctly.
DNS propagation can take time
pending, wait a few minutes and click Verify again.4. Activate
Once verified, click Activate on the domain card. From that moment, all transactional emails for this project send from noreply@yourdomain.com instead of auth@koolbase.com. Click Deactivate any time to switch back to the shared sender without removing the registration.
Activation is project-scoped
Fallback chain
Koolbase applies fallback logic so emails always have sensible defaults, even when branding is partially configured:
| Field | Falls back to |
|---|---|
| Display name | Project name |
| From name | Display name, then project name |
| Reply-to | No Reply-To header |
| Logo | Display name as bold white text |
| Primary color | Koolbase blue (#2b8cee) |
| Sender domain | auth@koolbase.com |
API reference
Most projects configure branding from the dashboard, but every setting is also reachable via the API for automation or CI workflows.
| Method | Description |
|---|---|
GET /v1/projects/{id} | Fetch current branding state |
PATCH /v1/projects/{id}/branding | Update display name, from name, reply-to, primary color |
POST /v1/projects/{id}/branding/logo | Upload logo (multipart, field name: logo) |
POST /v1/projects/{id}/domains | Register a new sender domain |
GET /v1/projects/{id}/domains | List registered domains for the project |
POST /v1/projects/{id}/domains/{did}/verify | Trigger DNS verification on a domain |
DELETE /v1/projects/{id}/domains/{did} | Remove a domain registration |
PUT /v1/projects/{id}/sender-domain | Set or clear the active sender domain |