Wiki.js
Wiki.js is open-source wiki software built on Node.js. It stores knowledge as versioned Markdown and makes that content accessible to machines through a GraphQL API, so the knowledge is not locked inside the interface.
Knowledge as an integrable data source
The real value of Wiki.js lies less in editing pages than in the machine access to the knowledge it holds. Every page is Markdown with a YAML header, every change is versioned, and the entire body can be queried through a programming interface. This turns a wiki from a pure reference work into a source that other systems can connect to.
Functional scope
Wiki.js covers the core tasks of a modern wiki:
- Editors: Markdown with live preview is the default; a WYSIWYG editor and an editor for raw HTML are also available.
- Versioning: Every content change is recorded. Earlier states can be compared and restored, and the edit history stays traceable.
- Structure and search: A navigation hierarchy, tags, and an integrated full-text search make the body of content accessible.
- Access and authentication: Local accounts and external providers via standards such as OAuth2, OpenID Connect, SAML, or LDAP govern who may read and write.
Data storage is configurable: content lives in a relational database and can additionally be synchronised with a Git repository or the file system.
The GraphQL API as the integrating core
Wiki.js is built consistently around a GraphQL API. The administration interface itself talks to the same endpoint that external programs use. Through this interface, pages and their metadata can be queried as well as created, modified, and moved. Authentication uses API keys that are sent as JWT tokens in the bearer header.
This programmatic exposure is the reason Wiki.js fits as a knowledge building block in larger architectures. The versioned Markdown body can be read out automatically, for example to feed it into a retrieval system (RAG) or to supply a custom frontend with the content. Knowledge maintained in writing thus becomes a data source usable beyond the web interface. Anyone who keeps the associated YAML header data structured makes this machine processing easier still; the YAML frontmatter page covers the basics.
Licence and project status
Wiki.js is licensed under AGPL-v3 and runs as a Node.js application that can be self-hosted. The stable line is the 2.x series; its most recent release (2.5.314) dates from May 2024, the codebase is considered mature, and it is widely deployed. A completely rewritten version 3 has been in development since 2022, but there is no firm date for a stable release. Anyone adopting Wiki.js should factor in this slowed release cadence and treat the productive 2.x series as the basis.
Assessment
Wiki.js suits situations where knowledge should be versioned, searchable, and at the same time reusable by machines. Compared with a purely local tool such as Obsidian, Wiki.js is a server-side application for shared access by several people; its distinguishing feature is the open API that makes the knowledge connectable.
References
- Wiki.js Releases on GitHub. Most recent stable release 2.5.314. (01.05.2024). github.com/requarks/wiki/releases
- Wiki.js Development preview for version 3. State of the rewrite, no binding release date. (12.10.2023). beta.js.wiki/blog
- Wiki.js Project site and feature overview. Open-source wiki on Node.js under AGPL-v3. (2024). js.wiki/
Related topics
- Obsidian, the comparison tool for Wiki.js.
- YAML frontmatter, the metadata standard for Wiki.js.
Ask AI
These links open external AI services, the conversation and its content are sent to their providers.