A Mishka CMS extension · included

Documentation
that keeps its history.

Mishka Document is a full documentation engine inside Mishka CMS. Workspaces and versioned sections, multi-language pages, a two-stage review workflow, issue tracking and followers, all real-time on Phoenix LiveView, with a full API.

Multi-version Multi-language Dual-review Real-time REST API + Swagger
Everything in the box

Twelve features, one knowledge base.

Workspaces

Top-level doc projects such as User Guide, API Reference and Internal Wiki. Each with its own maintainers & versions.

Versions

Maintain v1, v2, v3-beta in parallel. Each records the version it came from; one is marked latest.

Sections

Nest as deep as you need: chapters, sub-chapters, articles, each in the order you set.

Notes

The actual content. Rich text, code blocks and components, shown in order on their page.

Note drafts

Propose changes as drafts that need a content review and a technical review before applying.

Version history

Every section and note carries its own version number, and each page keeps its lineage across versions.

Issues

Log typos, broken links or suggestions on a page or note. Triage open → in-progress → resolved.

Followers

Readers follow the workspaces they care about, through the user API.

Multi-language

Every page translates into any language, linked as one, each with its own address.

Analytics

Completion, open issues, versions and maintainers per document, live on the dashboard.

Real-time

Edits, reviews and issues stream over WebSockets, so your team sees changes as they happen.

soon
AI assist

Draft sections, summarize and translate inside the editor. Write once, publish in every language.

Two-stage review

Nothing ships unreviewed.

A change to a page or a note is proposed as a draft that needs a content review and a technical review before it's applied to the live record. Each review can approve, reject or ask for a revision. The draft applies itself once both approve.

Draft proposals never touch live content
Content + technical approval, tracked separately
Each page keeps its lineage across versions
Audit log of who changed which record, and when
Draft: "Configuration #5"
1
Draft
2
Content Review
3
Tech Review
4
Applied
AI-first soon

Docs that write themselves.

Point the assistant at a module or endpoint and it drafts the section (signatures, examples, edge cases) and then translates it everywhere.

source · forms.ex
def build(entries, opts)
@doc "Compiles a form..."
...
note · build/2 …
build/2
Compiles form entries into a validated struct with the given options.
ENFAAR
Discoverable

Found before they ask.

Every published page ships structured data, a sitemap entry and a canonical address, so search engines and AI assistants are pointed to the latest version of your docs.

TechArticle + breadcrumb structured data
Canonical address written for you
Auto sitemap of the latest version
Instant filter over a document's pages
how do I configure gervaz?
AI answer · cited from Mishka Document
Set the ui_adapter in your domain… — Configuration · v0.0.1
For developers

Extend it without forking.

Every action emits a named event. Register plugins that hook in by priority through Mishka Installer. No core changes, and a pre-built plugin loads at runtime.

Doc events

Every page, every language

Write once and translate any page into any language. Each language has its own address, and the page links its translations together.

EN ✓ FA ✓ AR ✓ RU FR DE

Full REST API + Swagger

Every workspace, version, section, note, draft and issue is exposed as a documented JSON:API, OpenAPI / Swagger spec included.

GET /api/json/v1/user/mishka-document/workspace → 200
GET /api/json/v1/user/mishka-document/section → 200
POST /api/json/v1/tenant/admin/mishka-document/issue → 201

Included with Mishka CMS.

Mishka Document ships with Mishka CMS, which is free and open source. Use it, read the code, or hire us for custom work.

Mishka newsletter

New features & releases, once a month.

Release notes and product updates from the team building Mishka. No spam, unsubscribe anytime.

✓ once a month✓ no spam