Features

One source. A precise view for every reader.

OpenD turns DITA in your GitHub repository into a docs site, search, PDFs and in-app help, all filtered by the same rule.

Get started See our docs

Authoring in DITA

Structured, reusable content in a Git repository you own.

  • Topics, maps and bookmaps in a practical DITA subset
  • Reuse with conref, conkeyref and keyref, including per-reader key definitions
  • A template repository with sample topics, a theme and a validation workflow
  • opend validate in CI with every check the server runs
  • opend preview rebuilds on save and previews as any reader
  • Release branches and tags, each published as its own release line

A web editor for authors without Git

Saving and publishing are separate, and the repository stays the single source of truth.

  • Edit topic and map source in the browser, with validation next to it
  • Live preview of unsaved text, and preview as any organisation
  • Each author saves to their own branch; publishing opens one pull request
  • Branch protection rules and required checks are shown before merging
  • Side-by-side conflict resolution when the same lines changed
  • Runs as a separate service: included when you self-host, ask us for managed

Per-reader filtering

Conditions on any element decide who sees it, and the filter is fail-closed.

  • product and feature matched against the organisation’s entitlements
  • release ranges such as 1.2..1.9 matched against the reader’s version
  • audience, platform and other attributes filtered at build time with DITAVAL
  • Hidden pages return the same 404 as missing ones
  • Links to hidden topics render as plain text without the target’s title
  • Images are served only when a topic the reader can see references them

Publishing and delivery

Push to publish, with a validation gate in front of every release.

  • GitHub webhook builds, or polling for servers GitHub cannot reach
  • A failing build shows as a failed commit status and never goes live
  • Postgres full-text search with phrases, exclusions and prefix matching
  • PDF publications per reader, with cover, contents and your theme
  • PDFs are cached per release and entitlement set
  • Your own brand theme on the docs site and in PDFs

Embedded, context-aware help

Show the right topic inside your product, for the user who is signed in.

  • A help widget and button for your web app, plus a JSON API
  • Map routes such as /settings/sso to help topics in help-contexts.yaml
  • Your backend signs short-lived tokens for the signed-in user
  • Hidden topics fall back to a parent key or the app’s default
  • Only the origins you list may frame the panel
  • A help lab shows what every key and route resolves to for each reader

Readers, SSO and entitlements

Who reads what comes from your identity provider and your systems of record.

  • Reader sign-in with any OpenID Connect provider
  • Organisations hold products, features and a release
  • Sync organisations and readers from billing or a CRM in one transaction
  • Signed webhooks, a full snapshot API, or a nightly pull
  • Dry runs, merge and replace modes, and an audit entry per sync
  • A removed reader loses access immediately on every replica

Analytics and feedback

Learn what readers look for without tracking who they are.

  • Page views and searches across the site, help panel and API
  • Top and zero-result searches, and helpfulness per page
  • "Was this page helpful?" with an optional comment, no JavaScript needed
  • Never records a reader’s email, id or IP address
  • Respects Do Not Track and Global Privacy Control
  • Rows expire after a retention period (180 days by default)

Publish docs that fit every reader

Bring your DITA repository. We will have your instance running in minutes.

Get started See our docs