# Documentation > Full documentation for Documentation. --- # Explore Core Features Collection: Getting Started URL: https://docs.dewstack.com/docs/welcome-to-dewstack/core-features This is what Dewstack does, feature by feature, with a link to the guide for each one. If you are deciding whether Dewstack fits, read this page and follow the two or three links that matter to you. If you'd rather see it working first, do the [quickstart](/docs/welcome-to-dewstack/quickstart) instead – it takes five minutes. ## Writing and structure **The editor.** A rich-text editor with a formatting toolbar – headings, lists, tables, images, callouts – plus syntax-highlighted [code blocks](/docs/content-editing/code-blocks) and [embeds](/docs/content-editing/third-party-embeds) for YouTube, Loom, CodePen and similar services. Start at [Text editor overview](/docs/content-editing/text-editor-overview). **Collections and pages.** A **collection** is one section of your sidebar; a **page** lives in exactly one collection, and pages nest into parent/child trees you rearrange by dragging. The collection slug and page slug are the whole public URL. See [Create a new collection](/docs/managing-collections/create-a-new-collection) and [Create a new page](/docs/managing-pages/create-a-new-page). **Drafts, publishing and history.** Every page is either **Draft** or **Published**, and only published pages are ever served – to readers, to the API or to an AI assistant. Dewstack autosaves revisions as you type, and **Page History** lets you look at an earlier revision and restore it; how many revisions you can see depends on your plan. See [Save and publish a page](/docs/managing-pages/save-and-publish-a-page) and [Page history](/docs/managing-pages/page-history). **Screenshots you can annotate in place.** Click any image in the editor and choose **Advanced Edit** to crop it, box the region that matters and point arrows at controls, without leaving Dewstack or opening a separate image tool. See [Image editor](/docs/content-editing/image-editor). **Workspaces.** Each workspace is a separate site with its own content, theme, URL and access rules. You can duplicate one to stage a redesign, or [export](/docs/understand-workspaces/export-workspace) it to PDF, HTML or CSV. See [Create a new workspace](/docs/understand-workspaces/create-a-new-workspace). ## The site your readers see ![A published docs site: the site title and search in the header, a hero with a call to action, and the collections below as cards with icons and descriptions](https://res.cloudinary.com/dstack/image/upload/v1785156449/blob_esp0vl.png) This is the default landing page, built from your collections. The card text is each collection's short description. **Themes and appearance.** Four themes, each with its own layout, plus your logo, favicon, fonts, sidebar colours, header links, footer, CTA buttons and an optional landing page with a hero image. Every control saves immediately and previews against your real site. See [Customize your docs site](/docs/customize/customize-your-docs-site). **Dark mode.** Every theme ships with a dark mode toggle in the site header, and the reader's choice is remembered. There is no setting to turn it on – it is always there. **Spaces (tabs).** A **space** is a named group of collections rendered as a top-level tab, each tab with its own sidebar – useful for splitting "Guides" from "API Reference" in one workspace. Tabs only appear on the public site once you have two or more spaces. Configured in **Customize → Spaces (Tabs)**; see [Customize your docs site](/docs/customize/customize-your-docs-site). **Search.** Readers get a ⌘K / Ctrl-K search modal over every published page, with results grouped by collection. If SmartDocs is on, an "Ask AI" row appears above the results. **Reader extras.** A table of contents built from your headings, prev/next page navigation, a "Was this page helpful?" feedback widget, breadcrumbs, a cookie banner and an optional "Made with Dewstack" badge – each one a toggle in Customize. ## Hosting and access **Your URL.** Every workspace gets a `name.dewstack.com` subdomain you can rename. On a paid plan you can point a custom domain at it with a CNAME record; Dewstack handles the certificate. See [Custom domain](/docs/hosting/custom-domain). **Access control.** A site is **Public**, **Private** (reachable only through a private link you generate) or **Protected** (a password gate). Private and Protected need a paid plan or a trial; Protected additionally needs **Premium** or **Enterprise**. You can create several private links or several password-protected user groups and scope each to specific collections – that scoping needs **Pro**, **Premium** or **Enterprise**. See [Access and content sharing](/docs/hosting/access-and-content-sharing). ## AI **SmartDocs.** Train an assistant on your documentation and put it on your site as a chatbot or an "Ask a Question" widget, then read what people asked and what went unanswered. It also connects to Slack. See [What is SmartDocs](/docs/smartdocs/what-is-smartdocs). **Page Assist.** An AI writing assistant inside the editor: summarise, rewrite for clarity, run a grammar check, adjust tone, spot gaps, translate. Results insert below your cursor or replace the selection. Available from **Starter** upwards, or during a trial. See [Using Page Assist](/docs/smartdocs/ai-page-assist). **AI-ready output.** Every public Dewstack site serves `llms.txt`, `llms-full.txt`, a `.md` version of each page, and an MCP endpoint that Claude, ChatGPT and Cursor connect to without an API key. Readers also get a **Copy page** button with "Open in ChatGPT" and "Open in Claude" options. This is on by default on every plan. See [AI-ready docs](/docs/ai-ready-docs/why-ai-ready) and [Connect an AI assistant](/docs/api-and-agents/mcp). **REST API.** A read API over your published pages, authenticated with a workspace-scoped key – for scripts, CI jobs and integrations rather than assistants. See [API keys](/docs/api-and-agents/api-keys). ## Getting content in, and seeing what happens to it **Import.** Bring in Markdown, HTML, Word, CSV/XLSX, PDF, a zip of files, a web page by URL, or a Notion or Google Docs export. Some formats need **Pro** or above. See [Import content](/docs/understand-workspaces/import-content), and [Import Center](/docs/import-center/import-center-overview) for the document library that also feeds SmartDocs training. **FlowCapture.** A Chrome extension that records you clicking through a task and turns it into a step-by-step page: one screenshot and one written step per action, assembled into a draft you review and publish. Built for SOPs and runbooks. Recording needs **Starter** and up, or a trial. See [What is FlowCapture](/docs/flowcapture/what-is-flowcapture). **Analytics.** Visits and page views, your top and stalest pages, what readers searched for and whether they clicked, feedback scores, and AI conversation stats. Analytics is unavailable without a subscription; the number of tabs and the date range you get scale with your plan. See [Analytics](/docs/analytics-page/analytics). **Teams.** Invite people as **Owner**, **Admin**, **Creator** or **Editor**, and assign individual workspaces to individual members so they only see what they work on. Invites expire after 7 days. See [What is team support](/docs/team-support/what-is-team-support) and [Assign workspace](/docs/team-support/assign-workspace). ## Related  [Quickstart Signup to a live docs page in five minutes.](/docs/welcome-to-dewstack/quickstart)   [What is FlowCapture Record a task in Chrome and get a written how-to page.](/docs/flowcapture/what-is-flowcapture)   [FAQs The questions people ask before they commit.](/docs/faqs/common-questions) --- # Introduction Collection: Getting Started URL: https://docs.dewstack.com/docs/welcome-to-dewstack/introduction Dewstack hosts documentation sites. You write your pages in a rich editor in the Dewstack dashboard, and Dewstack serves them as a fast, themed docs site on your own domain – with search, dark mode and a sidebar built from your content. Every public Dewstack site also publishes an AI-readable copy of the same content – `llms.txt`, a `.md` version of each page, and an [MCP](/docs/api-and-agents/mcp) endpoint that Claude, ChatGPT and Cursor can connect to. That is included on every plan, from the trial upwards, and you don't have to configure it. ![The same page side by side – open in the Dewstack editor on the left, live on the published docs site on the right, with its sidebar, search, table of contents and copy-page button](https://res.cloudinary.com/dstack/image/upload/v1785156231/blob_lmdcwp.png) One page, two views. There is no build step between them. The unit you work in is a **workspace**: one documentation site, with its own collections and pages, its own theme, its own URL and its own access rules. You can run several – a public product manual, a private internal handbook – and they share nothing but your account. ## Where to start [Quickstart Sign up, write one page, and get it live on a URL you can share – about five minutes.](/docs/welcome-to-dewstack/quickstart) [Explore core features What Dewstack actually does – editor, themes, hosting, access control, SmartDocs, analytics – each with its guide.](/docs/welcome-to-dewstack/core-features) [Connect an AI assistant Point Claude, ChatGPT or Cursor at your docs over MCP, or read them from a script with the REST API.](/docs/api-and-agents/mcp) If you already have an account and want a map of the dashboard rather than a tutorial, read [Start your Journey](/docs/welcome-to-dewstack/start-your-journey). --- # Quickstart Collection: Getting Started URL: https://docs.dewstack.com/docs/welcome-to-dewstack/quickstart This is the shortest path from a new Dewstack account to a documentation page anyone can open in a browser: create a workspace, add a collection, write a page, publish it, and pick the subdomain it lives on. It takes about five minutes and needs nothing beyond the trial every new account starts on. ## What you need before you start A Dewstack account, and nothing else. New accounts begin on a free trial with **3 workspaces** and full access, so every step below is unlocked from the moment you sign up – see [Subscription and billing](/docs/account-settings/subscription) for how long the trial runs and what changes when it ends. If you are reading this on an account that has already been through a trial without subscribing, you are on the free tier: **one workspace**, and it has to be **Public** – the **Private** option in the New Workspace dialog is locked behind a paid plan or an active trial. Everything else in this quickstart still works. ## Create a workspace and publish your first page 1. Sign in at `app.dewstack.com`. You land on your workspaces list. 2. Scroll to **Templates** and click **Create from scratch** – the card described as "Get started with a blank template". 3. In the **New Workspace** dialog, type a **Name** (this is the site's name, not its URL), leave the access radio on **Public**, and click **Next**. Dewstack creates the workspace and drops you straight into the editor. 4. In the editor sidebar, click **Add New Collection**. A collection is one section of your sidebar – "Getting Started", "API Reference". 5. Give the collection a **Name** and check the **Slug** Dewstack derives from it; the slug becomes the first segment of every page URL in that collection. Click **Save**. 6. Open the collection's **⋮** menu and choose **New Page**. It appears in the tree as a draft titled "untitled". 7. Replace the title in the **Enter Title** field at the top of the editor, then write your content in the editor below it. It behaves like a word processor – headings, lists, images, code blocks, tables. 8. Click **Save as → Publish**. The status pill next to the button flips from **Draft** to **Published**. 9. Go to **Hosting** in the left sidebar. Under **Dewstack URL**, replace the auto-generated name with the subdomain you want and click **Save**. 10. Click **Preview Space** in the editor's action bar to open the live site, and share the URL. ![The workspace editor with a collection open in the sidebar, a page in the editor, and the Published pill on the right](https://res.cloudinary.com/dstack/image/upload/v1785150289/blob_ps5yqy.png) Once the pill reads Published, the page is live on your docs URL – there is no separate deploy. ## Where your page ended up Your page is now at `https://.dewstack.com/docs//`. Public URLs carry no space or workspace segment – the collection slug and the page slug are the whole path, which is why step 5 is worth a moment's thought. Drafts are never served. A page is only on the public site once you have used **Save as → Publish**, and a child page cannot be published while its parent is still a draft. Publishing is a permission, not just a button **Save as → Publish** only appears if your role has the _Publish Workspace_ permission. If you own the account you have it. Team members invited as **Editor** can save drafts but not publish them – see [Manage team members](/docs/team-support/manage-team). ## What to do next - **Make it look like yours.** Logo, colours, fonts, landing page and footer all live in [Customize](/docs/customize/customize-your-docs-site). - **Decide who can see it.** Public, private-link or password-protected, plus custom domains, in [Access and content sharing](/docs/hosting/access-and-content-sharing) and [Custom domain](/docs/hosting/custom-domain). - **Bring content you already wrote.** Markdown, Word, PDF, a zip or a URL – see [Import content](/docs/understand-workspaces/import-content). - **Skip the blank page.** Dewstack can build a whole workspace from a PDF or Word document; see [Create a new workspace](/docs/understand-workspaces/create-a-new-workspace). - **Let an AI read your docs.** Nothing to set up on a public site – [connect Claude, ChatGPT or Cursor](/docs/api-and-agents/mcp). ## Related [Customize your docs site Every reader-facing setting, in one page.](/docs/customize/customize-your-docs-site) [Custom domain Serve your docs from docs.your-company.com.](/docs/hosting/custom-domain) [AI-ready docs Every machine-readable surface Dewstack publishes for you.](/docs/ai-ready-docs/why-ai-ready) --- # Start your Journey Collection: Getting Started URL: https://docs.dewstack.com/docs/welcome-to-dewstack/start-your-journey Once you sign in to Dewstack you are looking at two things: the **workspaces list**, and – as soon as you open a workspace – a narrow icon sidebar down the left. Everything in the product is behind one of those sidebar entries, and each one applies to the workspace you currently have open. This page is the map: what each entry is for, and when you would actually go there. ![The dashboard with a workspace open and the icon sidebar down the left, from Workspace to Integrations, with the account avatar at the bottom](https://res.cloudinary.com/dstack/image/upload/v1785150220/blob_zkp4tg.png) This sidebar is the whole product. Each icon is one of the guides in this documentation. ## The workspaces list The home icon at the bottom of the sidebar takes you back to the list of your workspaces, under the heading **My Workspaces**. Each workspace is one documentation site. This is also where you create workspaces, and where each workspace card's **⋮** menu holds **Edit Workspace**, **Assign Workspace**, **Duplicate Workspace**, **Export Workspace** and **Delete Workspace**. Start at [Create a new workspace](/docs/understand-workspaces/create-a-new-workspace). ## What each sidebar entry is for - **Workspace** – the editor. Collections, the page tree, the writing surface, and the actions bar with **Save as**, **Import Content**, **Copy Page Link**, **Preview Space**, **Page History** and **Page Assist**. This is where you'll spend most of your time. See [Understanding your workspace interface](/docs/understand-workspaces/workspace-interface). - **Import Center** – a document library that sits beside your docs. Upload PDFs, Word files, text or Markdown once, then reuse each document either in your documentation or as SmartDocs training material. See [Import Center overview](/docs/import-center/import-center-overview). - **SmartDocs** – the AI layer on your published site: the chatbot, "Ask a Question", and the training set that answers get drawn from. See [What is SmartDocs](/docs/smartdocs/what-is-smartdocs). - **API & Agents** – the read API keys, the MCP URL for Claude/ChatGPT/Cursor, and the other machine-readable endpoints for this workspace. See [Connect an AI assistant](/docs/api-and-agents/mcp) and [API keys](/docs/api-and-agents/api-keys). - **Customize** – everything about how the site looks: theme, logo and favicon, fonts, landing page, sidebar colours, header and footer, SEO, cookie banner, and **Spaces (Tabs)**. Changes save immediately, and a preview pane beside the controls shows them applied to a sample page. See [Customize your docs site](/docs/customize/customize-your-docs-site). - **Hosting** – the page is titled **Hosting & Visibility**. Your `*.dewstack.com` subdomain, your custom domain, and whether the site is Public, Private or password-Protected. See [Access and content sharing](/docs/hosting/access-and-content-sharing). - **Analytics** – visits, page views, top and stale pages, search queries, feedback and AI conversation stats for this workspace. See [Analytics](/docs/analytics-page/analytics). - **Integrations** – third-party connections: Google Analytics, chat platforms, Slack, and a custom script embed. See [Integration with Slack](/docs/integrations/slack-integration). ## Entries you may not see Dewstack removes sidebar entries rather than greying them out, so a missing entry is normal, not a bug. Two things decide what you get: **your plan** and **your role**. | Entry | When it is missing or locked | | --- | --- | | Import Center, SmartDocs, API & Agents | Removed entirely if you have no subscription, unless you are in an active trial | | Analytics, Integrations | Shown with a padlock and an upgrade prompt if you have no subscription, and on Starter – again, not during a trial | | Customize | Removed for roles without the Customize Workspace permission | | Hosting | Removed for roles without the Hosting Workspace permission | | Analytics, Integrations, SmartDocs, API & Agents | Also removed for roles without Analyse Workspace, Integrate Workspace and Manage SmartDocs respectively | An active trial gives you the higher-tier sidebar. When the trial ends, entries disappear again – your content is untouched, you just lose the tools. ## The account menu The avatar at the very bottom of the sidebar opens your account menu, which is about you and your subscription rather than about one workspace: - **Profile** – your name, email and password. See [Profile](/docs/account-settings/profile). - **Subscription** – plan, billing and upgrades. See [Subscription](/docs/account-settings/subscription). - **Team** – invite members, set roles, and see pending invites. This entry only appears if you are the account **Owner** on a paid plan. See [What is team support](/docs/team-support/what-is-team-support). - **Support** – how to reach the Dewstack team. See [Support](/docs/account-settings/support). Workspaces themselves are handed to team members from the workspaces list, not from this menu – that's **Assign Workspace** on the workspace card's **⋮** menu ([Assign workspace](/docs/team-support/assign-workspace)). ## Related [Your workspace interface The three-column editor and what each part controls.](/docs/understand-workspaces/workspace-interface) [FAQs The questions people ask before they commit.](/docs/faqs/common-questions) --- # Create a new workspace Collection: Workspaces URL: https://docs.dewstack.com/docs/understand-workspaces/create-a-new-workspace A workspace is one documentation site: its own collections and pages, its own theme, its own URL and its own access rules. You create workspaces from the workspaces list – the page you land on when you sign in to Dewstack – and there are three routes: a template, a document you already have, or a description of what you want. How many workspaces you can have depends on your plan; the numbers are in [Limits and plan requirements](#limits-and-plan-requirements) at the bottom of this page. ## Start from a template Under the **Templates** heading is a carousel of cards. The first two are **Create template using AI** and **Create from scratch**; after them comes the template library – twelve fully written starting points: **SOP Handbook**, **User Manual**, **Knowledge Base**, **FAQ**, **Internal Handbook**, **Troubleshooting Playbook**, **Incident Response Runbook**, **Release Notes & Changelog**, **Documentation Audit Checklist**, **Documentation Migration Checklist**, **Project Kickoff Checklist** and **Risk Assessment Matrix**. ![](https://res.cloudinary.com/dstack/image/upload/v1786093126/template-picker-carousel_tb9vbd.png)The Templates carousel: Create using AI   and Create from scratch, followed by the twelve written templates Each library card is a real, populated site – around a dozen written pages per template, not an empty outline. One click provisions the whole workspace and opens it in the editor; there is no dialog to fill in first. You edit what does not apply rather than starting from a blank page. **Create from scratch** ("Get started with a blank template") is different: it opens the **New Workspace** dialog where you enter a **Name**, choose **Public** or **Private**, and click **Next** to get an empty workspace. A template only seeds the starting collections and pages – everything in it is yours to rewrite. **Private** is locked with a padlock unless you have a paid subscription or an active trial. You are not stuck with the choice – visibility is changeable later under [Hosting & Visibility](/docs/hosting/access-and-content-sharing). ## Build a workspace from a document you already have The banner at the top of the workspaces page – **"Convert Documents to Smart Documentation"** – turns an existing document into a full workspace. Dewstack extracts the text and the images, groups the content into collections and pages, and hands you the result in the editor. This flow always creates a _new_ workspace. If you want the same document folded into a workspace you already have, use [Import content](/docs/understand-workspaces/import-content) instead. ## Generate a template from a description **Create template using AI** – the first card in the Templates carousel – is the other AI flow, and it is a different thing: it produces a structured workspace based on what you say you're writing, rather than from a file you upload. The **Create Template with AI** dialog has three steps: 1. **Step 1: Select a Documentation Type.** Pick from the dropdown – User Manual, Technical Documentation, Knowledge Base, Software Documentation, FAQs, Troubleshooting Guide, Installation Guide, Standard Operating Procedure, Employee Handbook, Process Documentation, Product Documentation, Project Documentation – or choose **Other** and type your own. 2. **Step 2: Provide details about its purpose.** A free-text box, and optional. The more you describe your product and audience, the more specific the generated structure is. 3. **Step 3: Provide Workspace details.** Name and access, then **Create Template**. ## Limits and plan requirements Your workspace count is checked before anything is created – both in the dashboard, where the create cards are replaced with an upgrade panel at the limit, and by the server, which refuses creation past the limit with _"Your plan allows N workspaces. Upgrade to create more."_ | Plan | Workspaces | | --- | --- | | No subscription | 1 | | Starter, and any active trial | 3 | | Pro | 10 | | Premium, Enterprise | Unlimited | One other gate applies on this page: **Private** workspaces require a paid subscription or an active trial, in every dialog that offers the choice. ## Related  [Your workspace interface The three-column editor and what each part controls.](/docs/understand-workspaces/workspace-interface)   [Subscription Plans, invoices, seats and cancellation.](/docs/account-settings/subscription) --- # Duplicate a workspace Collection: Workspaces URL: https://docs.dewstack.com/docs/understand-workspaces/duplicate-workspace Duplicating a workspace makes a second, independent documentation site with the same collections, the same pages and most of the same look. The copy is created immediately, named `Copy `, and Dewstack drops you into its editor. Nothing about the original changes. ## Duplicate a workspace 1. Go to **My Workspaces**. 2. Open the **⋮** menu on the workspace card you want to copy. 3. Click **Duplicate Workspace**. 4. In the `Duplicate ''` dialog, click **Duplicate**. The dialog states what it will do – "This will create a copy of your collection and pages content in a new workspace" – and there is nothing to fill in. When it finishes you get the toast "Workspace duplication is successful." and land in the new workspace's editor. ![The duplicate confirmation dialog over the workspaces list](https://res.cloudinary.com/dstack/image/upload/v1785143400/blob_ky4ngv.png) The copy is independent from the moment it is made – later edits to either do not follow across. Rename the copy from its **⋮ → Edit Workspace** menu whenever you like; the `Copy` prefix is just the name it starts with. See [Edit and delete a workspace](/docs/understand-workspaces/edit-delete-a-workspace). ## What gets copied, and what doesn't | Copied | Not copied | | --- | --- | | Every collection, in order, with its icon and description | The *.dewstack.com subdomain – the copy gets a new auto-generated one | | Every page, including nesting, and each page's Draft or Published status | Any custom domain | | Theme, logo, colours, fonts, hero and landing page, header links, social links, CTAs | Favicon, SEO meta title and description, cookie banner text | | Table of contents, feedback and workflow toggles, language, badge setting | Page revision history, analytics, and SmartDocs training | | The Public or Private access setting | Private link – the copy generates its own | Slugs change in the copy Collection and page slugs are not copied verbatim. Dewstack appends a uniqueness suffix to each one, so a page at `/docs/getting-started/install` in the original ends up at a longer, uglier path in the copy. If you plan to promote the duplicate to be your live site, edit the slugs back before you point a domain at it – otherwise every URL you have shared will 404. Because the copy has its own subdomain and its own private link, publishing something in it does not expose it at the original's URL. Check the copy's settings under [Hosting & Visibility](/docs/hosting/access-and-content-sharing) before you share it, especially if the original was Private. ## When duplicating is the right move - **Staging a redesign.** Duplicate, restructure the copy, and keep the live site untouched while you work. When the copy is right, point your custom domain at it – or export the old one and delete it. - **A per-customer or per-version variant.** One workspace becomes the base; each duplicate gets the same skeleton and diverges from there. Every copy counts against your workspace limit, so check [how many workspaces your plan allows](/docs/understand-workspaces/create-a-new-workspace) first. - **A safe rehearsal.** A copy is a real backup you can browse and edit, which an [export](/docs/understand-workspaces/export-workspace) is not. There is no way to merge a copy back into the original, and no link between the two after the duplicate is made – changes on one side never appear on the other. ## Related [Create a new workspace Templates, AI import, and the per-plan workspace limits.](/docs/understand-workspaces/create-a-new-workspace) [Interface language Translate the built-in labels on your docs site.](/docs/multi-lingual/multi-lingual) --- # Edit and delete a workspace Collection: Workspaces URL: https://docs.dewstack.com/docs/understand-workspaces/edit-delete-a-workspace Both live on the workspace card's kebab menu, on the **My Workspaces** list. Editing changes a workspace's name and whether it is public or private. Deleting removes the workspace and everything inside it, permanently, with a single confirmation. ## Open the workspace menu On the workspaces list, each card has a **⋮** menu. It holds **Edit Workspace**, **Assign Workspace**, [**Duplicate Workspace**](/docs/understand-workspaces/duplicate-workspace), [**Export Workspace**](/docs/understand-workspaces/export-workspace) and **Delete Workspace**. ![A workspace card with its kebab menu open, showing Edit, Assign, Duplicate, Export and Delete Workspace](https://res.cloudinary.com/dstack/image/upload/v1785143372/blob_ptrl1r.png) Every workspace-level action lives here. There is no settings page above it. ## Edit a workspace **Edit Workspace** opens a dialog titled `Edit ''` with two things in it: - **Name** – the workspace's name in your dashboard. It is also the title shown in the editor sidebar. It is _not_ your site's URL and it is _not_ the title on your published site: the URL is the subdomain under [Hosting & Visibility](/docs/hosting/access-and-content-sharing), and the site title is **Title** under [Customize](/docs/customize/customize-your-docs-site). Renaming here breaks nothing. - **Public / Private** – the same two radios as the New Workspace dialog. **Private** is disabled with a padlock unless you have a paid subscription or an active trial. Click **Edit** to save, or **Cancel** to back out. This dialog only offers the Public/Private pair. **Protected** – password access – and everything else about visibility, including private link rules and per-collection access, is set inside the workspace under **Hosting & Visibility**. ## Delete a workspace **Delete Workspace** opens `Delete ''`, which asks "Are you sure you wish to delete this workspace?" and gives you **Cancel** and **Delete workspace**. There is no name to type and no second confirmation. Deleting a workspace cannot be undone Every collection, every page and every draft in the workspace goes with it, along with its settings and its subdomain. Dewstack has no trash and no restore for workspaces, and [Page History](/docs/managing-pages/page-history) cannot help you – it only restores revisions of a page that still exists. If there is any chance you'll want the content back, run an [export](/docs/understand-workspaces/export-workspace) first and wait for the email before you delete. If what you actually want is to take a site offline rather than destroy it, set its visibility to **Private** under **Hosting & Visibility** instead. The site stops being reachable at its public URL, and the content stays where it is. ## Who can do this The workspace menu is on the card, so anyone who can see the card can open it. Editing and deleting follow your team role: **Owner** and **Admin** can do both, and a member who has only been [assigned the workspace](/docs/team-support/assign-workspace) works inside it rather than managing it: **Delete Workspace** appears on the card menu for **Owners** and **Admins** only. **Creators** and **Editors** do not see the item at all. ## Related [Export a workspace A PDF, HTML or CSV copy you can keep outside Dewstack.](/docs/understand-workspaces/export-workspace) [Access and content sharing Public, private link or password – the full visibility settings.](/docs/hosting/access-and-content-sharing) --- # Export a workspace Collection: Workspaces URL: https://docs.dewstack.com/docs/understand-workspaces/export-workspace Exporting turns a whole workspace into a single file you can keep, archive or hand to someone outside Dewstack – as a PDF, a zip of HTML files, or a CSV. The export runs in the background: you don't wait on the page, you get an email with a download link when it's done. ## Export a workspace 1. Go to **My Workspaces**. 2. Open the **⋮** menu on the workspace card and click **Export Workspace**. 3. Choose **PDF**, **HTML** or **CSV**. 4. Click **Export**. The dialog confirms the arrangement up front: "Confirm export of the workspace. You will receive an email with a link to the exported file upon completion." You can close it and carry on working – the toast "Workspace export started. You will get an email shortly" is the last you'll see of it until the mail arrives, with the subject **Your Exported Workspace!** ![The export dialog with the PDF, HTML and CSV options and a description of the selected format](https://res.cloudinary.com/dstack/image/upload/v1785143410/blob_symryv.png) PDF is for handing to a person, HTML for hosting elsewhere, CSV for moving the text into another tool. ## Choosing a format | Format | What you get | | --- | --- | | PDF | "Single PDF document with Table of Contents and proper page formatting." | | HTML | "ZIP file containing individual HTML files organized by collection folders." | | CSV | "Single CSV file with all pages and their content for easy data import." | Pick by what you're going to do next: - **PDF** for something a person will read or print – a manual to attach to an email, a snapshot for an audit. - **HTML** if you want the content back as files, one per page, still grouped by collection. This is the format to take if you are moving off Dewstack or feeding a static site generator. - **CSV** if you want the content as data – one row per page, content in a column – for a spreadsheet, a bulk find-and-replace, or an import into another tool. ## The download link expires The email contains a signed download link that is valid for **24 hours**. After that it stops working and you have to run the export again – which is free and takes no longer the second time. Download the file and put it somewhere durable rather than treating the email as your archive. An export is not a backup you can restore Dewstack cannot import an export back into a workspace. A PDF, HTML zip or CSV is a copy of your content for use elsewhere; it will not rebuild your collections, page tree, theme or settings. If what you want is a restorable copy inside Dewstack, use [Duplicate Workspace](/docs/understand-workspaces/duplicate-workspace) instead – and do it before you [delete anything](/docs/understand-workspaces/edit-delete-a-workspace). **Drafts are included.** All three formats export every page in the workspace, whatever its status – so an export is a complete copy, not a snapshot of your live site. If you are sending an export to someone outside your team, check it for unfinished pages first. ## Related [Edit or delete a workspace Rename, change the slug, and what deleting takes with it.](/docs/understand-workspaces/edit-delete-a-workspace) [Import content Bring existing pages into a workspace you already have.](/docs/understand-workspaces/import-content) --- # Import Content Collection: Workspaces URL: https://docs.dewstack.com/docs/understand-workspaces/import-content Dewstack can pull content you have already written into a workspace: a Markdown or Word file, a PDF, an HTML file, a spreadsheet, a zip of several files, a live web page, or an export from Notion or Google Docs. Import happens from inside the workspace editor and drops the content straight onto a page. This page covers importing into an existing workspace. Two related things live elsewhere: the [Import Center](/docs/import-center/import-center-overview) is a document library that also feeds SmartDocs training, and [Create a new workspace](/docs/understand-workspaces/create-a-new-workspace) covers building an entire workspace from one PDF or Word file. ## Where to start an import There are two entry points inside the editor: - **Import Content**, in the actions bar on the right of the editor. This imports into **the page you currently have open**. - **Import Page**, on a collection's **⋮** menu. This appears only if you have a subscription. Both open the same dialog – **Import your content** – with the instruction "Choose a file type or platform and import your content to this page". ![The Import your content dialog showing the file-type grid – Markdown, HTML, Word Document, CSV/XLSX, Website, Zip and PDF – with Notion and Google Docs below](https://res.cloudinary.com/dstack/image/upload/v1785153099/blob_ipqftd.png) This imports into the page you have open. To bring in a batch, use the Import Center instead. A single-file import replaces the open page Importing one file overwrites whatever is in the page you have open and saves it as a **Draft**. It does not append, and there is no undo prompt. Create an empty page first and import into that. (You can still recover the previous version from [Page History](/docs/managing-pages/page-history) if your plan includes it.) Imports that contain several documents – a zip, or a CSV/XLSX with one row per page – behave differently: they create multiple new pages inside the collection instead of overwriting one. ## What you can import | Source | What you upload | | --- | --- | | Markdown | A .md file | | HTML | An .html file | | Word Document | A .docx file | | CSV/XLSX | A spreadsheet, one page per row | | Website | A URL – the dialog is Import a Webpage, placeholder "Please enter the URL e.g https://xyz.com" | | Zip | A .zip of several documents | | PDF | A .pdf file | | Notion | Export the Notion page as Markdown, then upload the .md | | Google Docs | In Google Docs choose File → Download → Microsoft Word (docx), then upload the .docx | Notion and Google Docs are not live connections – they are instructions for producing a file Dewstack already reads. There is no OAuth step and nothing stays in sync afterwards. For live connections to Google Drive, Notion, GitHub, Confluence, Jira or Dropbox, use the [Import Center](/docs/import-center/import-center-overview). ### Zip imports Zip is the way to bring in a batch of pages at once. The dialog states the constraints, and they are enforced: - Maximum zip file size: **20mb** - File limit: **10 files** - Allowed file types inside the zip: **`.md`, `.docx`, `.html`** - All files must sit in the **root** of the zip, not in subfolders Each file becomes its own page in the collection. Folder structure is not turned into page nesting – arrange the pages in the sidebar afterwards. ## Limits and plan requirements **CSV/XLSX**, **Zip** and **PDF** are marked with a padlock and open an upgrade prompt instead of the importer unless you are on **Pro**, **Premium** or **Enterprise**, or in an active trial. Markdown, HTML, Word Document, Website, Notion and Google Docs are available on every plan. **Import Page** on a collection menu is only rendered for accounts with a subscription; the **Import Content** action in the editor is the route to use without a paid subscription. ## Related [Import Center The document library, statuses and row actions.](/docs/import-center/import-center-overview) [Edit and manage a page Rename, reorder, nest, duplicate, delete.](/docs/managing-pages/edit-and-manage-a-page) --- # Understanding your Workspace Interface Collection: Workspaces URL: https://docs.dewstack.com/docs/understand-workspaces/workspace-interface Opening a workspace puts you in the Dewstack editor, which is three columns: the **collection sidebar** on the left, the **editor pane** in the middle, and a narrow **actions bar** pinned to the right. The dashboard's own icon sidebar – Customize, Hosting, Analytics and the rest – stays to the far left and always applies to the workspace you have open. ![The workspace editor: collection sidebar on the left, page body in the middle, and the actions rail on the right with Save as, page actions, status and Page Assist](https://res.cloudinary.com/dstack/image/upload/v1785153058/blob_q7mabg.png) The three columns are constant. Everything you do to a page is in the right-hand rail or the row's kebab menu. ## The collection sidebar The sidebar is your site's structure. At the top is the workspace name, then a **Search pages...** box, then the **Add New Collection** button, then the collections themselves. Each collection expands into its pages. Pages nest – drag a page onto another to make it a child, drag to reorder within a collection, drag collections to reorder the sidebar itself. What you see here is what readers see on the published site, in the same order. Two kebab (**⋮**) menus live in this column: - **On a collection:** **Edit Collection**, **Delete Collection**, **New Page**, and **Import Page** (the last only appears if you have a subscription). - **On a page:** **Edit Page**, **Duplicate Page**, and – on a page that already has children – **New Page**, which adds a child page. Draft pages are shown greyed out with a **(Draft)** suffix, so you can see at a glance what is not live yet. Selecting **Edit Collection** slides in a panel with the collection's **Icon**, **Name**, **Slug**, **Short Description** and, if you have created spaces, a **Space** select. **Edit Page** opens a **Page Settings** panel with the page's **Title** and **Slug**. Both end in **Cancel** / **Save**. ## The editor pane The middle column is one text field for the page title – placeholder **Enter Title** – and the rich-text editor underneath it. The editor renders content roughly as it will appear on the published page, and its toolbar covers headings, lists, tables, images, links and code blocks. See [Text editor overview](/docs/content-editing/text-editor-overview) for what the toolbar can do. If you open a collection with no pages in it, the editor is replaced by an empty state – "No pages in this collection" – with a **Create First Page** button. ## The actions bar The right-hand column holds everything you do _to_ the page you are editing: | Control | What it does | | --- | --- | | Save as | Split button; the dropdown offers Draft ("Page will not be visible to anyone") and Publish | | Status | A pill reading Draft or Published | | New Page | Adds a page to the current collection | | Duplicate Page | Copies the page; the copy is named (Copy) | | Import Content | Opens the import dialog for this page | | Copy Page Link | Copies the page's public URL | | Preview Space | Opens your live site in a new tab | | Page History | Opens Page Revision History with per-revision Restore | | Page Assist | The AI writing assistant panel | The **Save as** button reads **Saving...** while a save is in flight. Dewstack also autosaves revisions on a timer; you can turn that off in **Customize → Auto-Save Option**. Two of these are plan-gated **Page History** shows a padlock and an upgrade prompt without a subscription, and the number of revisions you can see is capped per plan. **Page Assist** is locked below **Starter**. An active trial unlocks both. **Publish** appears only if your role has the _Publish Workspace_ permission. ## Related [Create a collection Name, slug, icon, description and space.](/docs/managing-collections/create-a-new-collection) [Save and publish a page What Draft actually hides, and who is allowed to publish.](/docs/managing-pages/save-and-publish-a-page) --- # Create a new Collection Collection: Collections URL: https://docs.dewstack.com/docs/managing-collections/create-a-new-collection A collection is a group of pages that forms one section of your docs sidebar – "Getting Started", "API Reference", "Troubleshooting". Every page in Dewstack lives in exactly one collection, and the collection's slug is the **first segment of every page URL underneath it**: https://docs.acme.com/docs/api-reference/authentication ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ collection page That makes a collection two things at once: the shape of your sidebar and the shape of your URLs. Pick the slug before you start linking to pages, because changing it later breaks every link into the collection. ## Add a new collection Collections are created in the workspace editor sidebar, not from the top-level navigation. 1. Open a workspace and click **Add New Collection** at the top of the left sidebar. 2. Fill in **Name** and **Slug** – both are required. 3. Optionally pick an icon and write a short description. 4. Click **Save**. ![The New Collection panel with the icon chooser at the top – an Auto chip, a search box and a grid of icons – above the Name, Slug, Short Description and Space fields](https://res.cloudinary.com/dstack/image/upload/v1785153624/blob_m7seir.png) Leave the icon on Auto and one is picked from the name. The Space field decides which tab the collection appears under. The new collection appears at the bottom of the sidebar with no pages in it. Until it has at least one **published** page, Dewstack hides it entirely from your docs site – an empty collection never shows up in the sidebar, on the landing page or as a tab. ## What each field does **Icon** – a Tabler icon, an uploaded image, or nothing. Left alone, it stays on **Auto**, where Dewstack picks an icon from the collection's name. See [Manage a Collection](/docs/managing-collections/manage-a-collection) for the picker in detail. **Name** – what readers see as the section heading in the sidebar and on the landing page. The placeholder is _Untitled_. Leaving it blank fails with _"You must enter a Name of the collection."_ **Slug** – the URL segment. Dewstack does **not** derive this from the name; you type it yourself, and it stays whatever you typed no matter how often you rename the collection. **Short Description** – one line shown under the collection name on your docs landing page. It has no effect anywhere else, and it is optional. **Space** – a select that only appears once the workspace has at least one [space](/docs/customize/customize-your-docs-site). It decides which tab the collection appears under, and its help text says so: _"Which tab this collection appears under on your docs site."_ The first option is **Default ()**. With no spaces defined, the field is not rendered at all. ## Slug rules A slug must be lowercase letters and digits, with single hyphens between words – `api-reference`, `v2-migration`, `faqs`. No uppercase, no spaces, no underscores, no double hyphens, no leading or trailing hyphen. Anything else is rejected with: > Slug format is invalid. Please use only lowercase alphabets or numbers and only hyphen between the words Slugs must also be unique inside the workspace. Reusing one gives you the toast _"Slug already exists for this workspace. Please use a different slug."_ Tip Write the slug the way you would want it in a support ticket. `getting-started` is a better answer to "which page is that on?" than `gs-v2-final`. ## Related  [Spaces and tabs Split your docs into top-level tabs, each with its own sidebar.](/docs/customize/spaces-and-tabs)   [Create a new page Titles, slugs and where a new page lands.](/docs/managing-pages/create-a-new-page) --- # Manage a Collection Collection: Collections URL: https://docs.dewstack.com/docs/managing-collections/manage-a-collection Everything you can do to an existing collection is either a drag or an item in its kebab menu (the ⋮ next to the collection name in the workspace editor sidebar). This page covers reordering, the icon picker, the short description, deleting, and moving a collection into a different space. ## Reorder collections by dragging The order of collections in the editor sidebar is the order readers see on your docs site. Drag a collection up or down the sidebar and the new order is saved immediately – there is no Save step. One thing blocks a drag: an unsaved page anywhere in the workspace. Dewstack stops the move with **"Unable to move the Collection or Page!"** and tells you to save the untitled page as a draft first. Save it, then retry. ## The kebab menu | Item | What it does | | --- | --- | | Edit Collection | Opens the side panel with Icon, Name, Slug, Short Description and Space | | Delete Collection | Deletes the collection and every page in it | | New Page | Adds an untitled draft page to this collection | | Import Page | Opens the import dialog – only rendered if the workspace has a paid subscription | Without a paid subscription or an active trial you will not see **Import Page** at all; it is not dimmed, it is absent. See [Import Content](/docs/understand-workspaces/import-content) for what the dialog accepts. ![The collection kebab menu open in the editor sidebar, showing Edit Collection, Delete Collection, New Page and Import Page](https://res.cloudinary.com/dstack/image/upload/v1785152992/blob_yfqops.png) Deleting a collection deletes its pages with it, and their URLs with them. ## Choose a collection icon The icon picker sits at the top of the Edit Collection panel – the same picker you get when you [create a collection](/docs/managing-collections/create-a-new-collection), where it is pictured – and it has three states. **Auto (the default).** The picker reads _"Auto: an icon is chosen from the collection's name."_ You do not have to touch it – Dewstack matches the name against its icon set and picks something reasonable. **A Tabler icon.** Type in the **Search icons…** box and the grid filters as you type, matching both the icon name and related terms – searching `api` finds `code` and `api`, searching `security` finds `shield` and `lock`. Click one to select it. Once an icon is set, the picker shows its name plus a **reset to auto** link. **A custom image.** The **Use a custom image** link at the bottom right opens a file picker that accepts any image type. Where the icon actually shows up depends on which kind you picked, and this is easy to get wrong: - A **Tabler icon** renders both next to the collection in your docs sidebar and on the landing page. - An **uploaded image** renders on the landing page only. It does not appear in the sidebar. The picker's own footnote – _"Shown on your docs landing page and lists."_ – is the short version. ## Write a short description **Short Description** is one line of text that appears under the collection's name on your docs landing page, in the card or row for that collection. It is not shown in the sidebar, not shown on article pages, and not used as a meta description. If your landing page is switched off in [Customize](/docs/customize/customize-your-docs-site), it is not shown anywhere. Treat it as a one-sentence answer to "what is in here?" – "Endpoints, authentication and rate limits", not "This section contains information about our API." ## Move a collection into a different space If your workspace uses spaces (the tabs across the top of your docs site), a collection belongs to exactly one of them. There are two ways to move it: - **From the collection.** Open **Edit Collection** and change the **Space** select, then **Save**. - **From Settings.** Open the **Spaces (Tabs)** panel, remove the collection's chip from one space and add it to another. Public URLs carry no space segment, so moving a collection between tabs does not change a single page URL. It only changes which tab the collection appears under and which sidebar it shares. ## Delete a collection **Delete Collection** removes the collection and every page inside it, and a confirmation dialog stands between you and that. There is no undo and no trash. Two constraints are worth knowing before you plan a reorganization: You cannot delete your last collection When a workspace has only one collection left, **Delete Collection** is dimmed and clicking it does nothing. Create the replacement collection first, move the pages you are keeping, then delete. Deleting a collection does not affect any space it belonged to – the space stays, just with one fewer collection in it. ## Related [Spaces and tabs Split your docs into top-level tabs, each with its own sidebar.](/docs/customize/spaces-and-tabs) [Landing page Hero, buttons, header links and footer.](/docs/customize/landing-page) --- # Create a new page Collection: Pages URL: https://docs.dewstack.com/docs/managing-pages/create-a-new-page A page is a single document in your docs: a title, a body, and a URL made from its collection's slug plus its own. Every page belongs to exactly one collection, so you create a page _from_ a collection – or from another page, if you want it nested underneath. New pages always start as **Draft**, which means nobody but you can see them until you publish. ## Create a page in a collection 1. In the workspace editor sidebar, hover the collection and click the ⋮ menu. 2. Click **New Page**. A row named _untitled_ appears in the collection and the editor opens. 3. Replace the title in the **Enter Title** field at the top. 4. Write the body, then click **Save as** and choose **Draft** or **Publish**. ![The editor immediately after New Page: a page named untitled sitting as a Draft in the sidebar, with an empty body](https://res.cloudinary.com/dstack/image/upload/v1785154122/blob_avnl7a.png) New pages are drafts. Nothing you type is public until you pick Publish from Save as. ## Create a child page from a page row To nest a page under an existing one, open the ⋮ menu **on the parent page's row** and click **New Page** there. The new page is created as a child of that row rather than as a sibling. The item only appears on rows that can take children, so if you don't see **New Page** in a page's menu, you are looking at a row that can't be a parent. You can also nest an existing page later by dragging it – see [Edit and Manage a page](/docs/managing-pages/edit-and-manage-a-page). ## What "untitled" means Both routes create the page immediately, named `untitled`, with a slug like `untitled-3` and status Draft. That is a real, saved row in your sidebar, not a placeholder – which has two consequences: - **Dewstack will not let you drag anything until it is saved.** With an untitled page in the workspace, moving a page or collection is blocked with _"Unable to move the Collection or Page!"_ Save the page as a draft first. - **Renaming the page does not rename its slug.** The title and the slug are independent fields. A page you titled "Authentication" keeps the URL `.../untitled-3` until you change the slug yourself in **Settings** on the page's ⋮ menu. Set the slug before you publish The slug is what people bookmark and what search engines index. Fix it while the page is still a draft; changing it after publication breaks every existing link to the page. ## How nesting maps to URLs A top-level page sits directly under its collection: /docs// A child page carries its parent as a middle segment: /docs/// So a page called "Refresh tokens", nested under "Authentication", in the "API Reference" collection, is served at `/docs/api-reference/authentication/refresh-tokens`. Two things follow from this. First, URLs never contain a space (tab) name – moving a collection between tabs leaves every page URL untouched. Second, **the public site addresses one level of nesting only**: collection → page → child. The editor will let you drag a page under a child, but a grandchild does not get its own URL, does not appear in the reader's sidebar, and is left out of your sitemap. Keep your tree two levels deep inside a collection. ## Related [Text editor overview The toolbar, grouped by what you are trying to do.](/docs/content-editing/text-editor-overview) [Save and publish a page What Draft actually hides, and who is allowed to publish.](/docs/managing-pages/save-and-publish-a-page) --- # Edit and Manage a page Collection: Pages URL: https://docs.dewstack.com/docs/managing-pages/edit-and-manage-a-page Everything you do to an existing page runs from one of two places: the ⋮ menu on the page's row in the workspace editor sidebar, or a drag of that row. Draft and published pages behave identically here – publishing changes who can see a page, not how you edit it. The ⋮ menu holds **Settings**, **Delete Page**, **Edit Page**, **Duplicate Page**, and – on rows that can take children – **New Page**. ![A page row in the editor sidebar with its kebab menu open, showing Settings, Delete Page, Edit Page, Duplicate Page and New Page](https://res.cloudinary.com/dstack/image/upload/v1785152944/blob_efd9ua.png) Edit Page renames; Settings holds the slug, the SEO fields and the page-level toggles. ## Rename a page There are two ways, and they do the same thing: - Open the page and edit the title field at the top of the editor (placeholder **Enter Title**). - Or open **Settings** from the row's ⋮ menu and edit **Title** there, then click **Save**. Renaming changes the sidebar label and the page heading on your docs site. It does **not** change the URL. ## Change a page's slug The slug is the last segment of the page's URL, and it lives in the **Settings** panel next to the title. Dewstack never derives it from the title, so a page created and renamed but never slug-edited keeps its original `untitled-3` URL. Slug rules are the same as for collections: lowercase letters and digits with single hyphens between words. Anything else is rejected with _"Slug format is invalid. Please use only lowercase alphabets or numbers and only hyphen between the words"_. Changing a slug breaks existing links Dewstack does not create a redirect from the old URL. Anything already pointing at the old address – bookmarks, support macros, search results, other pages in your docs – will 404. Get slugs right while a page is still a draft. ## Reorder and nest pages by dragging Drag a page row to move it. The same gesture does three different jobs depending on where you drop: - **Drop between two rows in the same collection** to reorder. This is the order readers see in the sidebar. - **Drop onto a page row** to nest the page underneath it as a child. - **Drop into a different collection** to move the page there. Its URL changes, because the collection slug is the first segment of it. Dragging is blocked while any untitled page exists anywhere in the workspace – Dewstack shows **"Unable to move the Collection or Page!"** and asks you to save that page first. The public site renders one level of nesting (collection → page → child), so a page dragged under a child will not get a URL or a sidebar entry. ## Duplicate a page **Duplicate Page** copies the page's content into a new page in the same collection, named `(Copy)` – duplicating "Authentication" gives you a page titled `Authentication(Copy)`. The copy is created as a top-level page in the collection, as a **Draft**, with a fresh `untitled-N` slug – so it is safe to duplicate a published page and rework the copy. Rename it and set its slug before you publish, or you will ship a page titled `…(Copy)` at a URL that says `untitled`. ## Delete a page **Delete Page** asks _"Are you sure you want to delete?"_ and warns that it will permanently delete the page **and any sub-pages under it**. Confirm with **Yes, Go Ahead**. There is no undo and no trash – a deleted page is gone, along with its revision history. One constraint surprises people: **you cannot delete the only page in a collection.** When a collection is down to a single page, its **Delete Page** item is dimmed and clicking it does nothing. To get rid of the last page, create a replacement page first, or delete the whole collection from the [collection's ⋮ menu](/docs/managing-collections/manage-a-collection). ## Related [Page history Restore a previous version of a page.](/docs/managing-pages/page-history) [Manage a collection Icons, reordering, descriptions and moving between spaces.](/docs/managing-collections/manage-a-collection) --- # Page History Collection: Pages URL: https://docs.dewstack.com/docs/managing-pages/page-history Dewstack keeps a versioned copy of a page's content every time it is saved, and **Page History** in the editor's right-hand panel lets you read those versions and restore one. How many versions it keeps depends on your plan, and without a subscription the button is locked. ## Open the revision panel Click **Page History** in the right panel of the editor. A panel titled **Page Revision History** opens over the editor, listing revisions newest first as a timeline. Each entry shows: | Field | What it tells you | | --- | --- | | Date and time | When that version was saved | | Saved by | The team member who saved it – or, for agent edits, the name of the key or connection that made them | | Save Type | Manual if someone clicked Save as, Auto if autosave wrote it, agent update if an agent edited the page | | Restore | Loads that version back into the editor | If the page has never been saved twice, you get **"No revision history found."** At the bottom of the list, Dewstack states your allowance: _"As per the current plan, you can view N revisions."_ Restore loads the old version into the editor. It is not saved until you save it. `Auto` entries only exist if you have switched autosave on in **Customize → Auto-Save Option** – see [Save and Publish a Page](/docs/managing-pages/save-and-publish-a-page). With autosave off, every revision in the list is a `Manual` one. ## Agent edits create revisions too When a [connected agent](/docs/api-and-agents/let-an-agent-write) edits a draft, the version it is replacing is saved to history **before** the edit is applied – automatically, whether or not autosave is on. The entry is attributed to the connection's key name, so the timeline reads honestly: _Claude connector – agent update_. Restoring works exactly as for any other revision, which means an agent edit is never a one-way door. ![](https://res.cloudinary.com/dstack/image/upload/v1786093372/page-history-agent-update_zv7zlt.png) ## Restore a previous version Click **Restore** on the revision you want. The panel closes and the editor content is replaced with that version. **Restoring does not save.** The restored version is sitting in the editor, unsaved, exactly as if you had pasted it in. To keep it you must click **Save as → Draft** or **Save as → Publish**. Until you do, your docs site still shows whatever was published before. Restore replaces the whole page body Anything in the editor that is not in the revision you picked is overwritten. Restore is all-or-nothing – there is no per-section merge and no diff view. If you are unsure, copy your current content out first. ## How many revisions each plan keeps Once a page hits its limit, the oldest revision is dropped to make room for the newest – one per save, so a downgrade drains the list gradually rather than truncating it at once. Agent revisions count against the same allowance. | Plan | Revisions kept | | --- | --- | | No subscription | None – the button is locked | | Starter | 50 | | Pro | 100 | | Free trial | 100 | | Premium, Enterprise | Unlimited | Say that first row plainly: without a subscription **Page History** shows a padlock and clicking it opens an upgrade prompt rather than the panel. No revisions are recorded either, so subscribing starts the history from that moment – it does not recover versions from before. A **free trial** gets Pro-level history, 100 revisions, for the length of the trial. ## Related  [Let an agent write drafts How agent edits land, and the rules they follow.](/docs/api-and-agents/let-an-agent-write)   [Page features Sidebar colours, table of contents, feedback, prev/next, autosave.](/docs/customize/page-features) --- # Save and Publish a Page Collection: Pages URL: https://docs.dewstack.com/docs/managing-pages/save-and-publish-a-page Dewstack has one save control: the split **Save as** button at the top right of the editor. Its dropdown holds two options, **Draft** and **Publish**, and choosing one both saves your work and sets the page's visibility. There is no separate "save" and "publish" step. ![The Save as button with its dropdown open, showing Draft and Publish with a checkmark against the current status](https://res.cloudinary.com/dstack/image/upload/v1785150393/blob_yqv13g.png) This is the only control that changes whether a page is public. Autosave never publishes anything. The dropdown puts a checkmark against the status the page is in now, and describes each option in one line: **Draft** – _"Page will not be visible to anyone"_; **Publish** – _"Page will be visible to everyone"_. ## What Draft actually means A draft is invisible everywhere your readers and their tools can reach. Not dimmed, not watermarked – absent: - **On your docs site.** Draft pages are filtered out of the sidebar, the landing page, prev/next navigation, search and the sitemap. Their URLs return a not-found page. - **In the [REST API](/docs/api-and-agents/rest-api).** Only published pages are ever returned, no matter which API key you use. - **Over [MCP](/docs/api-and-agents/mcp).** An AI assistant connected to your docs – Claude, ChatGPT, Cursor – cannot see, search or fetch a draft. - **In site search.** Nothing indexes what is not published. One knock-on effect catches people out: **a collection whose pages are all drafts disappears completely.** It is not rendered as an empty section – the collection vanishes from the sidebar, the landing page and the tab bar until at least one page in it is published. ## Publishing a page Click **Save as → Publish**. The status pill next to the button flips from a yellow **Draft** to a green **Published**, the "(Draft)" suffix disappears from the page's row in the sidebar, and the page is live at its URL immediately. Publishing an already-published page replaces the live version with what is in the editor. ### Publish is dimmed while the parent page is a draft On a child page, **Publish** stays greyed out until its parent page is published. This is deliberate: a published child under an unpublished parent would have a URL whose middle segment points at nothing. Publish the parent first, then the child. ### Publish is missing entirely without the right role **Publish** is only rendered for team members whose role carries the **Publish Workspace** permission. Today that is **Owner**, **Admin** and **Creator**. A member with the **Editor** role sees only **Draft** in the dropdown – the Publish row is not there at all, so if you are hunting for a greyed-out button you will not find one. Ask an Owner or Admin to change your role on the [team page](/docs/team-support/manage-team). ## Reading a page's status at a glance | Where | Draft | Published | | --- | --- | --- | | Sidebar row | Grey title with a (Draft) suffix | Normal title | | Editor status pill | Yellow Draft | Green Published | | Save dropdown | Checkmark on Draft | Checkmark on Publish | The editor also shows **Last Saved On:** with a timestamp once a page has been saved at least once. ## Autosave Autosave is **off unless you switch it on**. It lives in **Customize → Auto-Save Option**, as a toggle labelled _"Enable/Disable auto-save for content"_. With the toggle on, Dewstack saves the page body roughly five seconds after you stop typing – the Save as button reads **Saving…** while it works – and on paid plans and during a trial it also writes an **Auto** revision to [Page History](/docs/managing-pages/page-history) a few seconds later. Manual saves write a **Manual** revision the same way, so your history distinguishes the two. Autosave only ever saves _content_; it never changes a page's status. A draft stays a draft. But a **published** page stays published, which means autosave pushes your half-finished edits to the live site without you clicking Publish. If you need to rework a published page quietly, duplicate it and edit the draft copy. With autosave off, nothing is saved until you click Save as That is the default state for a new workspace. If you close the tab or navigate away mid-edit without using **Save as**, the work is gone – there is no draft buffer and no recovery prompt. ## Related [Page features Sidebar colours, table of contents, feedback, prev/next, autosave.](/docs/customize/page-features) [Access and content sharing Public, private link or password – the full visibility settings.](/docs/hosting/access-and-content-sharing) [Manage your team Invites, the four roles and the full permission list.](/docs/team-support/manage-team) --- # Code Blocks Collection: Content Editing URL: https://docs.dewstack.com/docs/content-editing/code-blocks A code block is a framed, syntax-highlighted snippet with a language label and a **Copy** button. You insert one with **Add Code Block** on the editor toolbar, pick a language, and paste your code into the dialog – code blocks are not typed inline in the page body. ## Insert a code block 1. Put the cursor where the block should go and click **Add Code Block** on the toolbar. 2. Choose your language from the **Select Language** dropdown. 3. Paste your code into the box under _"Insert your code below:"_. 4. Click **Add Code**. The block is inserted at the cursor, already highlighted. **Close** dismisses the dialog without inserting anything. ![The Add Code Block dialog over the editor with a language selected and code pasted into the text area](https://res.cloudinary.com/dstack/image/upload/v1785151203/blob_d3djy9.png) Pick the language here rather than after inserting – it is what drives the highlighting and the label on the published block. ## Choose the language The **Select Language** dropdown covers 24 languages: Bash, C, C#, C++, CSS, Go, GraphQL, Java, JSON, JSONP, Javascript, LaTeX, Markdown, Markup (HTML/XML/XHTML), MATLAB, Objective-C, Perl, PHP, PL/SQL, Python, Ruby, SQL, Swift, TypeScript. The language does two jobs. It drives the syntax colouring, and it becomes the label your readers see in the corner of the published block – which is how someone scanning a page of snippets finds the one in their language. Pick the language before you click Add Code Dewstack does not fall back to a sensible default. If you insert a block while the dropdown still reads _Select Language_, the published block gets a meaningless label and no highlighting. Set the dropdown first. ## Edit an existing code block Double-click a code block in the editor. The same dialog reopens with the code already loaded and the language dropdown set to whatever the block was tagged with, and the button now reads **Edit Code**. Saving replaces the block in place. Code blocks are not editable by clicking into them – double-clicking to open the dialog is the only way to change one. That is what stops a stray keystroke from corrupting a snippet. ## What readers get On your published docs site, every code block is wrapped in a frame with a header bar. The header shows the language on the left and a **Copy** button on the right; clicking it copies the snippet and the button switches to **Copied** for a couple of seconds. A block with no language falls back to a generic **Code** label. The Copy button copies the code **with its line breaks intact**, so a multi-line shell script pastes into a terminal and runs. That is worth stating because it is the failure mode of most copy buttons. Here is how two blocks come out. A Bash block: curl -H "Authorization: Bearer $DEWSTACK\_API\_KEY" \\ https://docs.acme.com/api/public/v1/articles And a JSON block: { "collection": "api-reference", "article": "authentication", "status": "Publish" } Both render with the same chrome – only the label and the colouring differ. ## Related [Text editor overview The toolbar, grouped by what you are trying to do.](/docs/content-editing/text-editor-overview) [Themes and dark mode What your code blocks look like when a reader switches to dark.](/docs/customize/themes) --- # Image Editor Collection: Content Editing URL: https://docs.dewstack.com/docs/content-editing/image-editor Dewstack has a built-in image editor for the three things documentation screenshots actually need: **crop** away the irrelevant window, **highlight** the region that matters, and **arrow** at the control the reader has to click. It opens over the page, works on the image already in your article, and replaces it in place when you apply. It is built for SOPs and step-by-step guides, where a raw full-window screenshot is close to useless – the reader can see forty controls and no indication of which one you mean. ## Opening the editor There are two ways in, and they do the same thing: - **In a page.** Click an image in the editor to bring up its floating toolbar, then click **Advanced Edit** – the pencil icon at the far right of that bar, after the separator. - **In a FlowCapture capture.** On the **Edit Steps** [review screen](/docs/flowcapture/review-and-publish), expand a step and click **Crop/Edit** above its screenshot. It is the same editor, with the same tools. ![The Dewstack image editor open over a screenshot, with the Crop, Highlight and Arrow tools in the top row, padding and corner sliders beside them, a red highlight box drawn around one card and a red arrow pointing at another](https://res.cloudinary.com/dstack/image/upload/v1785162259/blob_egq4c1.png) One highlight and one arrow, on the same image. The bar underneath always tells you what the active tool expects you to do next. ## The tools ### Crop **Crop** is the tool you land on. Drag a rectangle over the part of the screenshot you want to keep; a live `W × H` readout follows the cursor. Drag the handles to adjust it, drag inside the box to move the whole selection, and click outside it to clear the crop and start again. Crop first. Everything else – highlights, arrows, padding – is positioned relative to what survives the crop. ### Highlight **Highlight** draws a red rounded rectangle around a region: a field, a button, a row in a table. Drag to place it, then drag its handles or its body to adjust. There is **one highlight per image**. Drawing a second replaces the first. If you need to call out two things, that is usually a sign it should be two steps and two screenshots. ### Arrow **Arrow** points at a control. Drag from where you want the tail to where you want the head. Unlike highlights you can add as many as you like. Click an arrow to select it, then drag its endpoints to reshape it or press `Delete` / `Backspace` to remove it. `Escape` deselects. While Arrow is active a colour row appears – red, blue, black, or a custom colour – so an arrow can stay visible against a dark UI. ### Padding and corners **Padding** adds a coloured margin around the image, 0 to 50 pixels, in white, blue, black or a colour you pick. **Corners** rounds the image's corners, 0 to 30 pixels. These are cosmetic. They earn their place when a screenshot's own background is the same colour as your docs page and the image bleeds into the text – a few pixels of padding gives it an edge. ### Reset and Apply **Reset** discards every change and returns to the image you opened. **Apply** saves. ## What Apply does **Apply** flattens everything – the crop, the highlight, the arrows, the padding – into a single new PNG at the original resolution, uploads it, and swaps it into your page. Your article then autosaves. Editing is not reversible The saved image is a flat PNG. The crop and the annotations are baked into the pixels: reopening the editor gives you your annotated image as a fresh starting point, not editable shapes. You cannot move an arrow you applied yesterday, and cropping twice crops the already-cropped image. The original file is not deleted, so the safe pattern for anything you may revise is to keep the untouched screenshot somewhere and re-upload it rather than re-editing. ## What the editor does not have Worth knowing before you plan a screenshot standard around it. There is **no text tool**, **no blur or redaction**, and **no undo/redo** – `Reset` is the whole undo story. There is also no free-form drawing, no numbered step badges, no zoom, no rotate or flip, and no resizing beyond what cropping gives you. For redaction in particular: there is nothing here that will black out a customer name. Take the screenshot with test data instead. ## Limits - **Input:** JPEG, JPG, PNG and GIF, up to **5 MB**. SVG and WebP are not accepted – convert them to PNG first. - **Output:** always PNG, at the original image's resolution. - **Animated GIFs** are flattened to their first frame. - **Images hosted elsewhere.** The editor needs to read the image's pixels, which an external image server may refuse. If you see _"Failed to load image for editing. The image server may not support editing"_, the image is hot-linked from another site. Download it, upload it to Dewstack with **Insert Image → Upload Image**, and edit that copy. The editor itself is available on every plan. Recording with [FlowCapture](/docs/flowcapture/what-is-flowcapture), one of the places it opens from, is not. ## Related [Review and publish a capture Rewrite the steps, annotate the screenshots, choose where it lands.](/docs/flowcapture/review-and-publish) [Text editor overview The toolbar, grouped by what you are trying to do.](/docs/content-editing/text-editor-overview) --- # Text Editor Overview Collection: Content Editing URL: https://docs.dewstack.com/docs/content-editing/text-editor-overview The Dewstack editor is a WYSIWYG ("what you see is what you get") editor: it renders your page inside a frame that already carries your docs site's brand font and content styles, so what you see while writing is close to what your readers get. Everything is on one toolbar at the top. This page walks the toolbar by what you are trying to do rather than left to right, because the groups are not in the order you will reach for them. ![The editor toolbar above a page of content, expanded so every button group is visible](https://res.cloudinary.com/dstack/image/upload/v1785150675/blob_bek6lf.png) The toolbar collapses to the common buttons at narrow widths; the ⋮ at the right end holds the rest. ## Structure: headings and lists **Paragraph Format** is the dropdown that matters most in a docs tool. It sets a block to Normal, Heading 1 through Heading 4, or Code. Use real headings, not bold text at a large font size. Your docs site builds each page's table of contents from actual heading tags – H1 and H2 become top-level entries, H3 and H4 become indented ones – and headings are also what search and AI assistants use to find the right part of a long page. Bold text does nothing for either. Dewstack will nudge you about this: save a page longer than about 1,500 characters with no headings in it and you get a tip toast saying so. Alongside it: - **Ordered List** and **Unordered List**, with dropdowns for the marker style – numbers, letters or Roman numerals; discs, circles or squares. - **Increase Indent** / **Decrease Indent** for nesting list items and indenting paragraphs. - **Align Left / Center / Right / Justify**, and **Line Height**. ## Emphasis: bold, colour and inline styles **Bold** and **Italic** sit at the far left. Click the **A:** button beside them to expand the rest of the group: **Underline**, **Strikethrough**, **Subscript** and **Superscript**, then a set that changes how text looks rather than what it means: **Font Family** (15 web fonts including Inter, Roboto, Open Sans, Poppins and PT Serif), **Font Size** (8 to 96), **Text Color**, **Background Color**, **Inline Class**, and **Clear Formatting**, which strips everything back to plain text. Reach for Clear Formatting after pasting Pasting from Word, Google Docs or another docs site brings that page's fonts, sizes and colours with it. Select the pasted block and hit **Clear Formatting** – the result inherits your own theme instead of fighting it, including in dark mode. ## Links **Insert Link** takes a URL, or picks from a list of every page in the current workspace. The list is labelled `Collection -> Page`, so linking to another one of your own pages is a two-click job and you cannot typo the slug. ## Media: images, video and tables ### Images **Insert Image** offers **Upload Image** – drag a file in or browse for one – and **By URL**. Uploads are stored on Dewstack's image CDN, so the image keeps working after you publish. Click an image once and its own toolbar appears above it: replace it, align it left/centre/right, add a caption, change display (inline or block), apply a style, set alternative text, change its size, remove it, and **Advanced Edit**. 1. Insert the screenshot with **Insert Image → Upload Image**. 2. Click the image, then **Advanced Edit**. 3. Use **Crop** to trim it, **Highlight** to box the part that matters, and **Arrow** to point at a control. 4. Click **Apply**. The annotated version is uploaded and swapped in. **Advanced Edit** has its own page – see [Image Editor](/docs/content-editing/image-editor) for every tool, and for what applying an edit permanently bakes in. To resize, drag the corner handles, or use the size control on the image toolbar to type exact dimensions. Always fill in the alternative text – it is what screen readers announce and what an AI assistant reading your docs sees in place of the picture. ![An image selected in the editor with its floating toolbar showing replace, align, caption, alt text, size, remove and advanced edit](https://res.cloudinary.com/dstack/image/upload/v1785152794/blob_ibhm9p.png) Alt text lives behind the tag icon here – it is the one button on this bar worth using on every image. **Image limits:** 5 MB per file, and only JPEG, JPG, PNG and GIF are accepted. SVG and WebP are not – convert them to PNG first. ### Video and other embeds **Insert Video** takes a video URL or a block of embed code. **Embed URL** handles everything else – slide decks, forms, dashboards and the rest – by expanding a shareable link into an embed. See [External Platform Content Embeds](/docs/content-editing/third-party-embeds) for what survives publication and what needs a script. ### Tables **Insert Table** drops in a table from a size grid. Click into any cell and a table toolbar appears for inserting and deleting rows and columns, merging and splitting cells, setting cell background and alignment, and turning header rows on. Tables are for comparing a fixed set of things – plans, parameters, status codes. If a cell holds a paragraph, it should have been a heading and some prose. ## Blocks **Blocks** is the grid button in the middle of the toolbar. It is the one control worth learning first: it inserts the six presentation blocks that Dewstack styles for you, so you never have to build a coloured box by hand. ![The Blocks dropdown open on the editor toolbar, showing Note, Tip, Warning, Danger, Steps and Link cards, each with its coloured icon and a one-line description](https://res.cloudinary.com/dstack/image/upload/v1785175577/blocks-toolbar_nouaz1.png) The icon and colour on each row are the ones the block itself uses, so the menu doubles as a preview. | Block | What it is for | | --- | --- | | Note | Context the reader needs but would not have guessed. | | Tip | A shortcut, or a better way to do the thing they just read. | | Warning | Something that can go wrong, and how to avoid it. | | Danger | Destructive or irreversible. Deleting, overwriting, rotating a key. | | Steps | A numbered walkthrough, rendered with connected step markers. | | Link cards | A grid of links to other pages in this workspace. | Pick one and it drops a filled-in block at the cursor with placeholder text you overwrite. A callout is an ordinary block of content, so you can put lists, code and links inside it. The four callouts are the same four you get from `:::note`, `:::tip`, `:::warning` and `:::danger` when content arrives through import or an agent, and Steps is the same as `:::steps` – one set of blocks, whoever wrote the page. Use them sparingly A page where everything is in a coloured box is a page where nothing stands out. If two callouts are next to each other, one of them is a paragraph. ### Link cards **Link cards** is the odd one out: instead of inserting placeholder text it opens a page picker, grouped by collection with a search box. Tick the pages you want, click **Insert**, and each one becomes a card carrying that page's title and a description line for you to replace. ![The Insert link cards dialog listing every page in the workspace grouped by collection, with two pages ticked and an Insert 2 cards button](https://res.cloudinary.com/dstack/image/upload/v1785173220/blocks-picker_qizlah.png) Cards are inserted in the order you tick them, not tree order. Because you pick from the real page tree, a card cannot point at a URL that does not exist. This is what the **Related** block at the bottom of these pages is made of. Cards are ordinary links once inserted – edit the title and the description like any other text. ## Code, quotes and dividers **Add Code Block** opens a dialog where you pick a language and paste your code; it publishes as a framed block with a language label and a Copy button. It has its own page: [Code Blocks](/docs/content-editing/code-blocks). **Quote** indents a block as a pull quote. **Insert Horizontal Line**, **Emoticons** and **Special Characters** round out the group. ## The rest of the toolbar **Undo** and **Redo** sit at the right-hand end, and the **⋮** beside them opens the rest: **Fullscreen** to hide the sidebar and write on the whole screen; **Print**; **Select All**; **Help** for the keyboard shortcut list. A live character count runs in the bottom corner. **Code View** swaps the editor for the page's raw HTML. It is the escape hatch for anything the toolbar cannot express – hand-written tables, a third-party iframe, a stray tag you want to delete. Edit the HTML, click the button again, and the visual editor comes back with your changes. ## Related [Code blocks Language tags, the copy button and long snippets.](/docs/content-editing/code-blocks) [Image editor Crop, highlight and arrow – annotate a screenshot in place.](/docs/content-editing/image-editor) [Save and publish a page What Draft actually hides, and who is allowed to publish.](/docs/managing-pages/save-and-publish-a-page) --- # External Platform Content Embeds Collection: Content Editing URL: https://docs.dewstack.com/docs/content-editing/third-party-embeds You can drop a YouTube video, a Loom recording, a Figma frame, a slide deck or a form straight into a Dewstack page. There are three routes – **Insert Video**, **Embed URL**, and pasting raw HTML in **Code View** – and one rule that decides whether any of them survives publication: your docs site serves `https` iframes and strips everything else, including scripts. ## Embed a video **Insert Video** on the editor toolbar takes either a video URL or a block of embed code copied from the provider's Share menu. Paste a YouTube, Vimeo or Loom link and it becomes a player sized to the page. ## Embed anything else with Embed URL For non-video content, use **Embed URL** in the toolbar's rich-insert group. 1. Copy the shareable link from the source platform. 2. In the editor, click **Embed URL**. 3. Paste the link and insert it. The link is expanded into whatever the source platform offers – an interactive preview for design and code tools, a card for a link with no embed of its own. ![The Embed URL popup open on the editor toolbar with a shareable link pasted into the field](https://res.cloudinary.com/dstack/image/upload/v1785152514/blob_n0gafb.png) Shown with the editor in fullscreen – at normal width the popup is clipped by the editor card. ## Paste embed code by hand If a platform gives you an `