Launch a self-hosted frontend
Connect your production domain, verify ownership, and make your SDK frontend the board's canonical site.
A
JUse this setup when your public job board runs in your own application with @cavuno/board. Cavuno continues to run the data, search, accounts, applications, billing, and other backend workflows. Your deployment becomes the public frontend.
After verification:
- your domain becomes the canonical board URL;
- sign-in callbacks and email links return to your frontend;
- the board's
*.cavuno.appand*.cavuno.comaddresses redirect to your domain; and - other Cavuno-hosted domains on the board redirect to the same frontend.
Before you begin
You need:
- a deployed frontend that already works over HTTPS;
- the board's
pk_…publishable key from Settings → SDK; - access to the domain's DNS records; and
- working routes for the public pages and enabled account workflows you plan to launch.
Install and connect the SDK first if you have not done so. Start with Install as package, then use the relevant framework guide.
Connect the domain to your hosting provider
Add the production domain to the platform that serves your frontend. Follow that provider's instructions for its A, AAAA, CNAME, or nameserver records and wait until the site loads with a valid TLS certificate.
The domain must point to your frontend host. Do not point it to edge.cavuno.com while it is self-hosted.
Keep the Cavuno ownership record at the separate _cavuno name. For jobs.example.com, the record is:
| Type | Name | Value |
|---|---|---|
| TXT | _cavuno.jobs.example.com | The verification token shown by Cavuno |
An existing matching _cavuno record can be reused.
Add the frontend in Cavuno
- Open the board dashboard.
- Go to Settings → SDK.
- Copy the publishable key into the public environment variable used by your framework—for example,
NEXT_PUBLIC_CAVUNO_BOARDin Next.js orVITE_CAVUNO_BOARDin Vite—and redeploy if needed. - Under Board hosting, click Switch to self-hosting.
- Enter the production domain, such as
jobs.example.com. Cavuno addshttps://automatically. - Click Use this frontend.
Cavuno checks the _cavuno TXT record immediately. If it is already correct, the status changes to Self-hosted. If DNS is missing or has not propagated, the status is Verifying; open Manage to see the exact record and retry the check.
Understand the statuses
| Status | Meaning |
|---|---|
| Self-hosted | TXT ownership is verified. The domain is canonical and Cavuno addresses redirect to it. |
| Verifying | The frontend is saved, but the _cavuno TXT record has not verified yet. Existing public routing stays in place until verification succeeds. |
| Auth only | Cavuno uses the URL for sign-in and email returns, but it cannot become the verified canonical domain. This is expected for shared provider hosts such as *.workers.dev, *.pages.dev, or *.vercel.app, and for URLs with a port. |
Use a domain you control when you need canonical URLs and Cavuno-host redirects. A shared provider URL can remain Auth only for previews or authentication returns.
Verify the launch
Check a representative page, not only the homepage:
Confirm that:
- the custom domain returns the expected page over HTTPS;
- both Cavuno addresses redirect to the same path on the custom domain;
- canonical links, Open Graph URLs, sitemap entries, and
robots.txtuse the custom domain; - sign-in, magic-link, email-verification, OAuth, and logout flows return to the custom domain; and
- no public route redirects back to a Cavuno address.
Then run doctor and complete the production checklist.
Change or remove the frontend
To move to another self-hosted domain, switch to Cavuno Cloud, then set up the new production domain. Verify the new TXT record before treating the move as complete.
To return the domain to Cavuno hosting:
- Open Settings → SDK, open the menu beside the self-hosted domain, and click Revert to Cavuno Cloud.
- Open Settings → Domains, then click Manage beside the domain.
- Restore the exact Cavuno-hosted DNS records shown there. A subdomain usually uses a CNAME; an apex domain uses the displayed A record and may also show a
wwwrecord. - Confirm that the domain becomes active.
- Recheck canonical URLs, sign-in returns, and both Cavuno addresses.
Removing the frontend does not delete the board, publishable key, jobs, users, or other Cavuno data.
Troubleshooting
The field turns red for a valid domain
Refresh the dashboard and enter either jobs.example.com or https://jobs.example.com. Paths such as /jobs, query strings, URL fragments, credentials, localhost names, and IP addresses are rejected.
The domain stays on Verifying
Open Manage and copy the exact TXT name and value. Check for an old value at the same name, wait for the record's TTL, and retry. The domain's A or CNAME record can point to your hosting provider; only the _cavuno TXT record proves ownership to Cavuno.
The status says Auth only
Provider-owned hosts and URLs with ports cannot be verified as your canonical domain. Attach a domain you control to that deployment, then remove the Auth only entry and add the controlled domain.
The domain is already registered
Use the same spelling shown under Settings → Domains, including whether the canonical host uses www. A domain connected to another board must be removed from that board before it can be used here.