Docs portal
A Jotly docs site is a public portal that your customers read and your support team links to. You write in a block editor, publish with one click and the site follows the design you pick.
This page covers the whole path: the editor, sites and domains, design, audiences, and how search and AI agents read the site. Two related pages go deeper: Git Sync and the docs MCP server.
Write pages
Each page is a tree of blocks with stable ids. Type / in an empty line to open the slash menu.
- Basic: text, headings 1 to 4, bullet, numbered and task lists, quote, divider and callout (note, info, tip, warning, danger, check).
- Media: images with a caption and a separate dark-mode file, and embeds from YouTube, Loom, Vimeo, Figma, CodePen, CodeSandbox, StackBlitz, Google Docs, Miro, Excalidraw, Supademo and Arcade.
- Interactive: tabs, steps, accordions, cards, buttons and links to other pages.
- Advanced: code blocks, code groups, tables and conditional blocks.
The left menu is a page tree of tabs, groups, links and pages. Drag to move, rename, duplicate, hide from the menu and set an emoji or a Lucide icon on a page, a group or a tab.
Drafts and publishing
Pages autosave as a draft. On a published page, changes to the title, description and body wait until you press Publish changes; the slug, icon, cover and SEO fields apply right away. You can also Preview, Discard changes and Unpublish.
Members can publish when the site setting “Members can publish” is on (it is by default). Deleting pages and changing site settings is for admins.
Every publish creates a numbered revision with its author and date. Open the history panel to read an old version, compare it with the current one, or restore it to the editor as a draft.
When you create a space you can start from a template:
- Blank
- Landing page
- Product docs
- API reference
- Changelog
- Help center
Sites and domains
A workspace can hold several docs sites, each with its own slug, design and audience. Where a site lives depends on how you publish it:
| Where | Address |
|---|---|
| Jotly address | /b/<workspace>/<site-slug>/<page> |
| Custom domain | <your-domain>/<site-slug> |
| Subdirectory | acme.com/docs, through a reverse proxy |
The custom domain is the one you connect to the whole workspace in Settings, and it needs the Starter or Pro plan. If the workspace drops to the Free plan, the site stops serving there.
For a subdirectory such as acme.com/docs, your server proxies the path to the Jotly address and sends the X-Forwarded-Prefix header. The Docs settings generate the snippet for Vercel, Cloudflare Workers, Nginx and Next.js, and Verify fetches <subdirectory>/llms.txt to confirm the proxy works.
Limits per plan:
| Plan | Published pages | Sites |
|---|---|---|
| Free | 25 | 1 |
| Starter | Unlimited | 3 |
| Pro | Unlimited | Unlimited |
Design
Open Docs, then Design. The public portal updates as you change each option.
- Template: Jotly, Developer (three columns), Help center (search first, with a hero) or Book (filled sidebar).
- Accent color: one hex value, set separately for light and dark. Backgrounds, borders and links derive from it. Advanced colors let you override each one.
- Shape: square, soft or round corners, plus icon style, depth, link style and sidebar list style.
- Appearance: system, light or dark by default, with an optional toggle for readers, and code themes for each mode.
- Brand: light and dark logos, favicon, header navigation, a call to action, an announcement bar and a footer with social links.
- Language: the portal's own text (search, “On this page”, feedback) comes in 11 languages and follows the reader's language or a fixed one. Page content is not translated.
Custom CSS (up to 20,000 characters, scoped to the portal) and removing “Powered by Jotly” need the Pro plan.
Who can read
Every site has one audience:
| Audience | Who sees it |
|---|---|
| Public | Anyone. |
| Share links | People with a link you created. Links can have a name and an expiry, and you can revoke them. |
| Authenticated | Customers with a verified identity: a signed identify, an SSO token, a portal sign-in or a team account. |
| Private | Your team only. |
An anonymous widget token or an unsigned identify counts as anonymous, so it never opens an authenticated site. See Identify users.
Any audience other than public needs the Pro plan. An unpublished site is visible to your team only.
Show each reader their own version
A Conditional block, or a page-level Visible to rule, shows content only to readers who match: all or any of conditions on authenticated, email, email_domain, company, plan, role, name or any trait you send in identify. Rules run on the server, so hidden content never reaches the browser. Pages with a rule stay out of search, the sitemap, llms.txt, the MCP server and Nova.
Search and AI agents
Readers and agents get several ways in:
- Search: press Cmd+K or Ctrl+K. Results come from Postgres full-text search with accent-insensitive title matching and show the best section and a snippet. You can turn it off per site.
- Ask Nova: the search window offers “Ask Nova” and the page menu offers “Ask” when the Jotly widget is on the page, and they open the Nova conversation there. The site setting needs the Pro plan.
- Markdown: add
.mdto any page URL, or sendAccept: text/markdown, to get the page as Markdown. The page menu has Copy page, View as Markdown, Open in ChatGPT and Open in Claude. - llms.txt:
/llms.txt,/llms-full.txtand/sitemap.xml, each with its own switch. They list only what an anonymous reader can see. - MCP: every public site can answer to Claude, Cursor and VS Code. See the docs MCP server.
Each page asks “Was this page helpful?”. A “Not helpful” comment can open a request on your feedback board.
See also Docs product page