Domains & Publish Targets
Publishing in Vivd depends on two related pieces:
- the domain being allowed for the organization or install
- the project being ready to publish its current saved state
This page explains the domain side of that flow so the publish dialog is easier to reason about.
Domain concepts
Vivd uses two main domain usages:
tenant_host: an organization or tenant host used to reach that workspacepublish_target: a domain intended for a live published site
For most live-site launches, publish_target is the clearest fit.
On installs that use tenant hosts, an active tenant_host can also be publishable in
some routing setups.
Domain types
Managed subdomain
A managed_subdomain is a host the install manages directly, typically as part of a
tenant-host routing pattern.
Typical traits:
- usually active immediately
- does not require external verification
- may be read-only for some usage changes, depending on the install
Custom domain
A custom_domain is a real domain you bring to the install, such as example.com or
www.example.com.
Typical traits:
- must be registered to the correct organization
- usually starts in
pending_verification - must become
activebefore publishing can use it
Domain status
You will usually see one of these states:
pending_verification: registered but not verified yetactive: usable for publishing and routingdisabled: known to Vivd but intentionally blocked
If a custom domain is still pending or disabled, the publish dialog will reject it.
Verification
Custom domains currently use a verification token flow before they become active. The admin surface can generate the token and show the values needed to prove domain ownership.
In practice:
- Add the custom domain to the correct organization.
- Start verification to get the challenge details.
- Complete the challenge on the domain side.
- Check verification again until the domain becomes
active.
Until that last step succeeds, publishing stays blocked for that domain.
What the publish dialog checks
When you enter a domain in the publish dialog, Vivd checks more than just syntax.
It needs:
- a complete domain value such as
example.com - a domain that is enabled for the current organization
- a domain that is not already in use by another project
- an
activedomain status - a publishable build or saved artifact ready for the selected version
- no unsaved Studio changes
- no older snapshot currently selected in Studio
That is why “Publish” can stay blocked even when the domain itself looks correct.
Common publish blockers
These are the most common reasons the dialog refuses to publish:
- the domain is not registered for this organization
- the domain is assigned to another organization
- the domain is still pending verification
- the domain is disabled
- the domain is already in use
- the latest project artifact is still being prepared
- Studio has unsaved changes
- Studio is currently viewing an older snapshot
Typical self-host defaults
On solo self-host installs, the main public host from Instance Settings -> Network
is always a publish target for the local instance. Solo installs can also use additional
registered custom publish domains, but tenant-host style routing stays off.
Recommended launch workflow
- Decide which domain should be the live site.
- If you are unsure which domains are currently eligible, inspect the publish targets first.
- Register and verify it before launch day.
- Make sure its status is
active. - Save the latest Studio changes.
- Review the pre-publish checklist.
- Publish from the project.
Related pages
- Read Publish Your Site for the end-to-end launch flow.
- Use Troubleshooting if a domain looks right but publishing is still blocked.
Read Instance Settings for install-wide routing and capability settings.