Custom Domains
Connect your own domain to any Kapable app. Visitors see your brand; Kapable handles hosting, SSL, and routing behind the scenes.
How It Works
Every Kapable app gets a default URL at
app-slug.kapable.run. Custom domains let you serve that
same app from your own domain (e.g. app.yourcompany.com).
The flow:
- You add a custom domain in app settings
- You create a DNS record pointing to Kapable
- Kapable verifies the DNS record
- An SSL certificate is automatically provisioned via Let's Encrypt
- Traffic to your domain is routed to your app
Adding a Custom Domain
- Open your app in the console and navigate to Settings
- Scroll to the Custom Domains section
- Enter your domain (e.g.
app.yourcompany.com) - Click Add Domain
Kapable will show you the DNS record you need to create.
DNS Configuration
Create a CNAME record at your DNS provider:
| Type | Name | Value |
|---|---|---|
| CNAME | app | your-app-slug.kapable.run |
For apex domains (e.g. yourcompany.com
without a subdomain), CNAME records aren't allowed by the DNS spec.
Options:
- Use a subdomain like
app.yourcompany.com(recommended) - Use a DNS provider that supports CNAME flattening (Cloudflare, Route 53, etc.)
- Set up a redirect from the apex domain to a
wwwsubdomain
DNS Propagation
DNS changes can take up to 48 hours to propagate worldwide, though most providers update within minutes. Kapable will keep checking until the record is verified.
SSL Certificates
Once DNS is verified, Kapable automatically provisions an SSL certificate via Let's Encrypt. This typically completes within a few minutes.
- Certificates are issued for your exact domain
- Renewal is automatic (certificates renew before expiry)
- Both HTTP and HTTPS are supported; HTTP redirects to HTTPS by default
- No configuration needed on your part
Certificate Rate Limits
Let's Encrypt enforces rate limits (50 certificates per registered domain per week). This is rarely an issue, but if you're adding many subdomains at once, certificates may queue.
Verification and Troubleshooting
After adding a domain, check its status in app settings:
| Status | Meaning |
|---|---|
| Pending DNS | Waiting for your CNAME record to be detected |
| Verifying | DNS detected, verifying ownership |
| Provisioning SSL | Issuing the SSL certificate |
| Active | Domain is live and serving traffic |
| Error | Something went wrong — check the error message |
Common Issues
DNS not detected:
- Verify the CNAME record is correct (
dig CNAME app.yourcompany.com) - Check for conflicting A or AAAA records on the same subdomain
- Wait for DNS propagation (up to 48 hours)
SSL certificate failed:
- Ensure no firewall or CDN is blocking the ACME challenge
- If using Cloudflare, set the DNS record to "DNS only" (grey cloud) during provisioning
- Check that port 80 and 443 are not blocked
Mixed content warnings:
- Ensure your app loads all resources over HTTPS
- Update any hardcoded
http://URLs tohttps://or use protocol-relative URLs
Multiple Domains
You can add multiple custom domains to a single app. All domains serve the same app content. This is useful for:
- Regional domains (
app.company.co.uk,app.company.de) - Brand aliases
- Migration from old domains (keep both active during transition)
Each domain gets its own SSL certificate and verification status.
Removing a Domain
To remove a custom domain:
- Go to app Settings → Custom Domains
- Click the delete button next to the domain
- Confirm the removal
After removal, the domain stops routing to your app immediately. Remember to clean up the DNS record at your provider.