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 Claim domain
Kapable will show you the DNS records you need to create.
DNS Configuration
Kapable asks for two records: one that proves you own the name, and one that routes it. Both are shown on the Domains panel with the exact values for your app.
| Type | Name | Value | Purpose |
|---|---|---|---|
| TXT | _kapable-verify.app.yourcompany.com | the token shown on the panel | ownership |
| CNAME | app | your-app-slug.your-org.kapable.run | routing (subdomain) |
| A | @ | the IP address shown on the panel | routing (apex domain) |
For apex domains (e.g. yourcompany.com without a
subdomain) use the A record, since CNAME records are not allowed at the apex.
Providers with CNAME flattening (Cloudflare, Route 53) may use a CNAME instead.
If you use Cloudflare, keep the record set to “DNS only” (grey cloud)
so Kapable can issue the certificate.
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 | Waiting for your TXT and routing records to be detected (re-checked every few minutes, or click check now) |
| 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 both records (
dig TXT _kapable-verify.app.yourcompany.comanddig CNAME app.yourcompany.com, ordig A yourcompany.comfor an apex) - 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.
Next Steps
Deployments
How your app gets built and shipped.
Troubleshooting
Common issues and how to resolve them.
Apps & Deployment API
The full apps API reference.