Domains + Doable
Every Doable project gets a free `<slug>.doable.do` subdomain with automatic HTTPS. To use your own domain, `app.example.com`, `example.com`, anything you control, connect it once and Doable provisions a Let's Encrypt certificate within a minute.
Custom domains are available on Starter ($15/month, 3 domains) and Pro ($39/month, 10 domains).
For a subdomain (`app.example.com`): CNAME pointing at `cname.doable.do`. For an apex (`example.com`): A record pointing at the IP Doable returns from the connect step. Most registrars (Cloudflare, Porkbun, Namecheap) take effect within minutes.
Doable verifies the DNS record, requests a certificate from Let's Encrypt, and adds the route to Traefik.
doable domain connect app.example.comVerification usually takes under a minute. The CLI polls and returns when the cert is live. If your DNS hasn't propagated yet, retry, the command is safe to re-run.
Once verification passes, the domain serves your project's latest deploy with HTTPS. The `<slug>.doable.do` subdomain keeps working too, both routes resolve to the same container.
Subdomains (`app.example.com`) use CNAME records, which are simpler and let Doable change underlying infrastructure without you updating DNS. This is the recommended setup.
Apex domains (`example.com`) require an A record. Doable returns the IP to point at when you run `domain connect example.com`. If the IP ever changes (rare, we don't rotate without notice) you'll need to update the A record.
Doable provisions Let's Encrypt certificates automatically, no upload, no manual renewal. Renewals happen ~30 days before expiry without any user action.
On BYO servers, the same Traefik + Let's Encrypt flow runs on your hardware. The agent handles cert provisioning and renewal locally; Doable just brokers the routing config.
Don't own the domain yet? `doable domain search <name>` checks availability and price — free, instant. `doable domain buy <name>` opens Namecheap (our affiliate partner) where you complete the purchase. Once registered, `doable domain connect <name> --project <id>` wires DNS + TLS automatically.
No. HTTPS via Let's Encrypt is included on every plan and every project, including the free `<slug>.doable.do` subdomain on the Free tier.
Yes. Set Cloudflare to proxy your domain (orange cloud), point the CNAME at `cname.doable.do`, and run `doable domain connect`. Doable provisions an origin certificate and Cloudflare handles the edge.
0 on Free (subdomain only), 3 on Starter, 10 on Pro. Each domain can be either an apex or a subdomain, they count the same.
The most common cause is DNS not yet propagated. Wait 1–5 minutes and re-run `doable domain connect`. If it keeps failing, check that the DNS record exactly matches what the CLI shows.
No credit card. Deploy your first project in under a minute.