Custom Domains
Every Jetpacked app gets a *.jetpacked.ai subdomain on deploy. If you want to serve your app from your own domain, you can connect it from the Domain tab in your project settings.
Custom domains require a paid project plan (Starter or above).
Dynamic apps (SSR / Node.js)
For dynamic apps, Jetpacked runs on a dedicated server and Caddy handles TLS automatically. You need to point your domain to your server's IP address before saving the domain in Jetpacked — the platform checks that DNS resolves correctly at save time and will reject the domain if it doesn't point to the right place yet.
Steps
- Open your project and go to Settings → Domain
- Find your server's IP address — it's shown on the domain settings page
- Add a DNS record at your registrar or DNS provider:
| Type | Name | Value |
|---|---|---|
| A | @ or www |
Your server IP |
- Wait for DNS to propagate, then enter your domain in Jetpacked and save
Jetpacked verifies DNS at save time. If it can't resolve the domain to the correct server, you'll get an error — just wait a few minutes for propagation and try again.
TLS
Once the domain is accepted, Caddy provisions a TLS certificate automatically. No further action is needed.
Static apps
For static apps, routing goes through Cloudflare. Jetpacked does not verify DNS for static sites — just point your domain wherever your DNS provider requires and save the domain in Jetpacked. The CDN routing is updated immediately.
Apex vs subdomain
For apex domains (myapp.com without www), your DNS provider needs to support A records on the root. Most do. If you want to use www.myapp.com, use an A record pointed to the same server IP.
Availability
Custom domains are available on Starter, Pro, and Power project plans. Projects using the free dynamic allowance only get the default *.jetpacked.ai subdomain.