Last Updated: 4/30/2026
Jolli Sites
A Site is a published documentation website built from a Space. One Space can power more than one Site (a public customer-facing one and an internal-only one drawing from the same Articles, for example).
You don’t write content on a Site. Writing happens in a Space; a Site is the published output.
Create a Site
From the sidebar, click + next to Sites. The wizard has four steps.
Basics
- Display Name - the human-readable title shown in the browser tab and the Site header. Example:
Orbit SDK Docs. - Site Name - Lowercase letters, digits, and hyphens; minimum 3 characters; no leading or trailing hyphens. Becomes part of the URL.
- Subdomain - optional. Blank means Jolli generates one from the Site Name.
A live URL preview (docs-account.jolli.site) updates as you type. You can point your own domain at the Site afterward.
Content
Pick the Space the Site pulls Articles from. Your space content structure will be used to generate the structure of your site.
Branding
Preset themes help you decide the base look and feel of your site. Once selected, you can override colors, logos, fonts, header links, and footer on the Branding tab after creation.
Access
| Tier | Who can read |
|---|---|
| Public | Anyone on the internet. Indexable by search engines. |
| Restricted to Jolli users | Signed-in members of your workspace only. |
| Restricted to ALL Jolli users | Any signed-in Jolli user, even outside your workspace. Gated by workspace capability - if it’s not enabled, this option doesn’t appear. |
Restricted Sites show a sign-in banner on every page. A toggle controls whether the banner also shows on Public Sites (on by default).
Click Create Site. Jolli builds the initial version, provisions hosting, and deploys. Status moves from Publishing… to Up to date; click the external-link icon to open it.
Tweaking branding after creation
The Site detail view’s Branding tab handles post-create edits. Changes apply on the next publish.
- Default theme - Light, Dark, or System.
- Typography - The font style that your site uses
- Accent color - a single hue slider (0–360). Drives headings, links, and primary actions.
- Logo URL - PNG, SVG, or WebP. Around 400px wide for retina.
- Favicon URL - ICO, PNG, or SVG; 32×32 or 16×16.
Logo and favicon are URL-based, not uploaded - you provide a publicly accessible URL Jolli fetches at build time.
Header navigation
Add up to 6 top-level header items beyond the auto-generated content tree. Each item is either:
- A Link - label + URL.
- A Dropdown - label + up to 8 child links.
Use it for things that don’t belong in the navigation tree itself - Pricing, Changelog, your main marketing site, an external GitHub link.
Footer
- Copyright line - up to 200 characters.
- Up to 4 columns, each with a title and up to 10 links. Group resource links however you like.
- Social links - GitHub, Twitter/X, Discord, LinkedIn, and YouTube. Each renders in the footer.
Custom domain
Every Site gets a sitename-account.jolli.site URL by default. Point your own domain at it under Site Settings → Custom Domain. Each site supports one custom domain.
You can add a subdomain (docs.yourdomain.com) or an apex (yourdomain.com). Each needs a different DNS record type.
Subdomain - CNAME
| Field | Value |
|---|---|
| Type | CNAME |
| Host | the subdomain part (docs, if you added docs.yourdomain.com) |
| Value | the value Jolli displays on the Domain tab |
Field names vary by provider - Host may be called “Name,” Value may be called “Target.”
Apex - A
| Field | Value |
|---|---|
| Type | A |
| Host | @ (or leave blank) |
| Value | the IP Jolli displays on the Domain tab |
Apex domains don’t support CNAME at the top level. If your DNS provider supports ALIAS, ANAME, or flattened CNAME at the apex (Cloudflare and a few others), follow their guidance. Leave TTL at the provider default.
Verification
The domain enters the list as Awaiting DNS. While any domain is pending, Jolli auto-checks the DNS record. When the record matches, the status moves to Connected. If it doesn’t match, the status shows Check DNS - usually a wrong record type, an existing conflicting record, or a DNS-provider quirk (Cloudflare’s proxy mode, for instance, can change CNAME resolution). Click Verify to force an immediate re-check.
DNS propagation usually takes 30 minutes or less; rarely several hours.
To remove a domain, find it in the list and click Remove. Jolli stops serving the Site at that domain immediately. Re-adding requires re-verifying DNS.
A domain points at exactly one Site. Use subdomains (docs., help.) to host multiple Sites under the same root.
Publishing
Each Site shows a status indicator:
- Up to date - live Site matches current Articles.
- Publishing… - rebuild in progress.
- Pending Changes - unpublished edits in the Space; click Publish to catch up.
- Build error - last build failed; click for logs.
Manual publish
Click Publish on the Site’s Overview tab. Jolli rebuilds from the current Space state and deploys.
While a site is building, the indicator shows a live progress percentage that updates as the build proceeds. If you started it by mistake, click Cancel Build to stop the site publishing.
Auto-publish schedule
Under Site Settings → Auto-Publish Schedule, enable the schedule and set:
- Every N day(s) - daily, every 3 days, weekly, etc.
- Hour -12-hour picker with AM/PM. We recommend selecting a low-traffic hour for your site.
- Timezone - read-only, from your profile.
Scheduled builds run whether or not there are pending changes; if nothing’s changed, the build is a no-op.
Source-driven publishing
If the Site’s Space has connected Sources, Gap Analysis can trigger rebuilds when tracked code changes. A push lands → Gap Analysis proposes a Changeset → auto-apply (if on) applies it → Pending Changes appears → the next auto-publish or manual click rebuilds.
Auto-apply is off by default for Spaces created through Guided Setup.
Build errors
Common causes of build failures include:
- Malformed Markdown — usually an unclosed code fence or HTML tag. The build log names the article and line.
- Invalid OpenAPI spec — JSON or YAML parses but is missing required fields (
openapi/swagger,info.title,info.version,paths). (Both JSON and YAML are accepted — no conversion needed.) - Broken image references — an image URL in an article isn’t reachable from the build environment.
- No published content — every Article in the Space is in a pending Changeset. Apply at least one Changeset and republish.
Every failure produces a plain-English What Happened summary plus the last 500 lines of raw build logs. Open the build error from the changes indicator at the top of the site detail view.