Skip to content
Cardinal
cardinal.wiki
GitLab
Compare

How Cardinal.js lines up against the wikis you're probably weighing.

Built in means it ships in the box and is on by default or one setting away. Partly means a plugin, an extension, a higher plan, or a narrower version of the feature. Notion, MediaWiki and DokuWiki are a toggle away.

Columns
Feature
Cardinal.js
0.1 · AGPLv3
Wiki.js 2.5
stable · AGPL
Wiki.js 3.0
beta · AGPL
BookStack
MIT
Outline
BSL 1.1
Confluence
Atlassian
Foundations
Open source, self-hosted YesYesYesYesPartlysource-availableNoData Center end of sale
Markdown as the stored format YesYesYesPartlyeditor optionPartlyProseMirror JSONNostorage format
Several sites, one instance
separate hostnames, content, settings
YesNoYesNoPartlyteamsPartlyspaces
Real-time co-editing
several people in one page at once
YesNoYesNoYesYes
Governance
SSO: OIDC, SAML, LDAP
18 providers in Cardinal.js
YesYesYesYesPartlySAML on Business, no LDAPPartlyAtlassian Guard
Delegated per-site administration
site settings without instance-wide admin
YesNoNoNoPartlyper teamYes
Page classification levels
limit what a group or token may read
YesNoNoNoNoPartlyGuard Premium
Audit log with retention YesNoYesYesPartlyBusiness plan when self-hostedYes
Review before publish
suggestions, approvals, inbox
YesNoYesNoNoPartlyapprovals on Premium
Knowledge
Backlinks on every page YesNoYesYesYesPartly
Knowledge graph
whole site, clustered
YesNoPartlytree and radial viewsNoNoNo
Runbooks and checklists
ticked through on the page
YesNoNoNoPartlycheckboxesPartlytasks
Glossary with canonical pages YesNoYesNoNoPartlyapps
Export a page to PDF YesNoNoYesPartlycloud and enterpriseYes
Integration
MCP server, built in
same permissions as the user
YesNoNoNocommunity servers onlyYesYesRovo MCP
Webhooks YesNoYesYesYesYes
Moving data
Imports a Wiki.js 2.5 site
dry run, verify, cutover
YesNois 2.5Partlyfrom a 2.5.316 export, no dry runNoNoNo
Whole-site Markdown export Partlystorage targets mirror every pagePartlygit syncPartlyPartlyper bookYesPartlyHTML/XML
built in partly · plugin · higher plan not available
Other columns from public docs, pricing pages and changelogs, October 2026. Spotted a mistake? Open an issue and we'll fix the row.
Wiki.js, three ways

Wiki.js 2.5.x, 3.0 and Cardinal.js

Wiki.js 3.0 reached beta in September 2026 and has since caught up on comments, git sync, backlinks, the glossary, the audit log, review and co-editing. These are the rows where Cardinal.js is still different.

Capability
Wiki.js 2.5.x
stable · 2020
Wiki.js 3.0 official
beta · upstream
Cardinal.js
0.1 · today
AI & agent integration
MCP server
search, read & write over content via Model Context Protocol
Gap
Gapdraft spec only
Shipped
User-scoped Personal Access Tokens
per-user, act-on-behalf-of auth for agents & integrations
Basicinstance-level API keys only
Basicgroup-scoped API keys only
Shipped
Security & access
Content sensitivity classification
inheritance on move, anti-declassification guardrails, admin visibility
Gap
Gap
Shipped
2FA & passkeys
TOTP, passkeys and recovery codes
BasicTOTP only, no passkeys
BasicTOTP and passkeys, no recovery codes
Shipped
Delegated per-site administration
hand off one site's settings without granting instance-wide admin
Not applicable
Gapmulti-site with no delegation dimension
Shipped
Knowledge organization
Tag rename & merge
fix or consolidate a tag everywhere it's used, without hand-editing every page
Gapbrowse by tag only
Gaplist only
Shipped
Knowledge graph
force-directed view, clustering, drill-down filters
Gap
Basictree and radial views, no filters
Shipped
Operations
Runbook & checklist sign-off
per-item run log — who checked it, and when — distinct from page edit history
Gapplain markdown task lists only
Gapplain markdown task lists only
Shipped
Bulk page management
select many pages at once, delete / re-render / retag them together
Gapmarked planned, unshipped
Basicwhole-folder move, delete or duplicate
Shipped
Platform & migration
Pluggable search providers
Elasticsearch, Algolia, Azure AI Search and the like, beyond built-in search
Shipped
GapPostgreSQL full-text only
Restoredplus semantic search; AWS CloudSearch dropped
2.5.x → 3.x migration
users, groups, permissions, content, history, tags, assets, comments
Not applicable
Basicimports a 2.5.316 export, no dry run or verifier
Shippedread-only from the 2.5 database, dry run and verifier
Release & supply chain
Signed, attested releases
build provenance, SBOM, signatures & checksums on each release
Gapactions pinned by tag, not SHA; provenance off
Gapno signing or SBOM
In progressrelease pipeline built
Shippedmerged & workingRestored2.5.x capability brought back into 3.xBasic / in progresspartial, or landed but not yet releasedGapnot available
Upstream columns from the requarks/wiki repository at 3.0.0-beta.661 and its official docs, October 2026.
If you run Wiki.js 2.5

Upstream 3.0 now imports a 2.5 export. Cardinal.js reads your 2.5 database directly instead, read-only, with a dry run and a verifier before you cut over. Everything you know still applies; the new parts are classification, scoped tokens and the agent surface.

Build your migrate command
If you're on BookStack or Outline

Both are good. The Cardinal.js case is classification levels, the review inbox, the knowledge graph and runbooks, on an AGPL licence with every feature in the one edition.

And the way back, should you want it
If you're on Confluence or Notion

You already have most of these features, on a plan. Cardinal.js is the self-hosted, per-seat-free version: your database, your storage, your audit log, your agents' tokens issued by you.

How access is controlled