Overview
Discover what makes Wiki.js powerful
Wiki.js is a modern, Node.js‑based wiki engine that blends performance with flexibility. At its core it exposes a RESTful API, GraphQL endpoint, and WebSocket channel for real‑time collaboration, making it a natural fit for internal documentation portals, knowledge bases, and developer handbooks. The application is built on the Express framework with Koa‑style middleware, while its rendering pipeline leverages Markdown (MDX), AsciiDoc, and HTML templates rendered by the EJS engine. This stack allows developers to embed custom logic in page rendering or extend the editor with rich plugins.
Rich Markdown support
Real‑time editing
Full‑text search
Fine‑grained ACLs
Overview
Wiki.js is a modern, Node.js‑based wiki engine that blends performance with flexibility. At its core it exposes a RESTful API, GraphQL endpoint, and WebSocket channel for real‑time collaboration, making it a natural fit for internal documentation portals, knowledge bases, and developer handbooks. The application is built on the Express framework with Koa‑style middleware, while its rendering pipeline leverages Markdown (MDX), AsciiDoc, and HTML templates rendered by the EJS engine. This stack allows developers to embed custom logic in page rendering or extend the editor with rich plugins.
Key Features
- Rich Markdown support: Syntax highlighting, math rendering via KaTeX, and optional AsciiDoc parsing.
- Real‑time editing: WebSocket integration powered by Socket.io keeps multiple editors in sync.
- Full‑text search: Powered by ElasticSearch or built‑in SQLite full‑text indexes.
- Fine‑grained ACLs: Role‑based permissions for pages, namespaces, and media.
- Plugin ecosystem: A plug‑in API exposes hooks for authentication, routing, and content rendering.
- Internationalization: Automatic language detection and translation management through JSON resource files.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Node.js 18+ (ESM) |
| Web framework | Express + Koa‑style middleware |
| Rendering engine | EJS templates, Markdown/MDX via markdown-it |
| Database | PostgreSQL / MySQL / MariaDB / MS SQL Server / SQLite (via Sequelize ORM) |
| Search | ElasticSearch or built‑in FTS |
| Real‑time | Socket.io over HTTP/2 |
| Authentication | Local, OAuth2 (Google, GitHub, Azure AD), LDAP, SAML |
| Containerization | Official Docker image (multi‑stage build) |
Sequelize abstracts the database layer, enabling seamless migrations and support for multiple RDBMS backends. The search stack can be swapped at runtime, allowing developers to run the app on a lightweight SQLite for prototypes or scale out with ElasticSearch in production.
Core Capabilities & APIs
- REST API: CRUD for pages, users, groups, and media.
- GraphQL API: Flexible queries for content, permissions, and metadata.
- Webhooks: Trigger external services on page creation, update, or deletion.
- Plugin Hooks:
onPageRender,beforeSave,afterAuth– developers can inject logic without touching core code. - CLI: Programmatic commands for migration, backup, and user management.
The API follows HATEOAS principles; every response includes links to related resources, simplifying client development.
Deployment & Infrastructure
Wiki.js is intentionally lightweight: a single Node process consumes < 200 MB of RAM on a typical installation. It can run on anything from a Raspberry Pi to a Kubernetes cluster. Docker images are pre‑built and supported by official Helm charts, allowing zero‑configuration deployments on cloud providers. The app automatically scales with Node’s cluster mode and can be fronted by a reverse proxy (NGINX, Traefik) for SSL termination and load balancing.
Integration & Extensibility
- Auth integrations: Plug in any OAuth2 provider, LDAP server, or SAML IdP.
- Custom themes: CSS/SCSS overrides and theme plugins let you match your brand.
- Event bus: Internal event emitter exposes
page.created,user.updatedevents for external services. - Scripting: Admin can add JavaScript snippets to modify the editor toolbar or page rendering pipeline.
The plugin system is version‑agnostic; developers ship plugins as NPM packages that register routes, middleware, or UI components. The marketplace is still nascent but growing.
Developer Experience
Documentation is comprehensive, with a dedicated developer section covering API usage, plugin creation, and advanced configuration. The community is active on Discord, Reddit, and GitHub Discussions, providing quick support for edge cases. The codebase follows the StandardJS style guide and is linted consistently, ensuring a clean code surface for contributors. License (AGPL‑v3) guarantees that improvements remain open, while the permissive nature of Node.js tooling allows rapid prototyping.
Use Cases
- Enterprise knowledge base: Integrate with Azure AD, use ElasticSearch for millions of pages.
- Open‑source project docs: Host on a small VPS, expose GitHub webhook for auto‑builds.
- Internal onboarding portal: Use local auth, custom themes, and role‑based ACLs to control access.
- Documentation for IoT devices: Run on a Raspberry Pi with SQLite, expose a lightweight API to embedded systems.
Advantages Over Alternatives
- Performance: Node.js event loop handles thousands of concurrent connections with low latency.
- Flexibility: Multi‑database support and pluggable search engines give developers control over their stack.
- Modern UI: Built‑in Markdown editor with live preview and plugin hooks reduces front‑end effort.
- Licensing: AGPL ensures that any modifications remain open, aligning with many OSS projects.
- Scalability: Works seamlessly from a single‑process deployment to a distributed Kubernetes cluster.
In short, Wiki.js offers developers a powerful, extensible platform that balances ease of use with deep technical control,
Open SourceReady to get started?
Join the community and start self-hosting Wiki.js today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Mindwendel
Collaborative idea‑generation and upvoting platform
Chhoto URL
Tiny, fast URL shortener for self‑hosted use
Scribble.rs
Privacy‑first online drawing game
Pairdrop
Peer‑to‑peer file sharing across any device
Puter
Your personal internet OS for files, apps, and games
Filestash
Universal web‑based file manager for any storage
