I know wikis have been discussed here before, but I wanted to add my two cents after shopping around for a wiki at work and for personal use.
Obsidian
Pros
- plain text storage format
- great at gathering disorganized thoughts without imposing a rigid structure
Cons
- closed source
- many features that arguably define a wiki are either absent or paywalled, like easy sharing, collaboration, and versioning
Mediawiki
Pros
- it’s the wiki. Everyone’s used and possibly edited a Wikipedia page.
- version history
- close to Obsidian in terms of “write now, organize later”
- Probably the nicest-looking FOSS wiki platform out of the box
- a lot of the features that Obsidian paywalls are built in, like multi user support and version history
Cons
- Articles not stored in plain text
- Has its own markup. Granted Mediawiki predates Markdown but the table syntax is horrendous. The Mediawiki help page on the matter actually tries to dissuade you from using tables and notes that the markup is ugly.
- Extensions are annoying to install
- Absolutely zero access control. You can even edit other people’s user pages. There’s no way to hide sections of a wiki from the public or from particular groups of users.
- It tries to be all things to everyone. While this makes it versatile, it also means doing a particular thing probably requires knowledge of CSS or Mediawiki’s own templeting syntax. Sometimes I just want to have an info box that doesn’t clutter the source code of a page.
Dokuwiki
Pros
- Access control finally!
- Plain text files
- Easy to create namespaces, which Mediawiki also has but doesn’t want you to go crazy making your own.
- While it’s not Markdown, the markup is nicer than Mediawiki IMO. The table syntax at least is miles better
Cons
- Uglier than sin. Yes even many of the templates (themes) on offer aren’t much better. The Bootstrap 3 template seems particularly popular, and while it’s a marked improvement in most areas, like a lot of frontends that use those bootswatch pallets there are dusty corners that don’t work, like black text on a black background.
- Some stuff like tags and moving pages have to be achieved via plugins. Seriously you can’t even rename a page?
- Mutilates article titles. Makes everything lowercase and replaces non alphanumeric chars with underscores (or something else configurable).
Bookstack
Pros
- It looks good I guess. Haven’t spent much time with it.
- Yay markdown!
- Also has access control
Cons
- Also not plain text
- remember earlier when I talked about “write now, organize later”? Bookstack holds a gun to your head and forces you to use its shelf>book>chapter>page organization system. I know some people thrive under this limitation, but I don’t.
Other wikis I’ve tried but not to the same extent
Wiki.js
IDK, I don’t know much about this one, but don’t like the workflow of making new pages.
Gollum
Really simple, which is both good and bad.
An Otter Wiki (the article seems to be part of the name)
A lot like Gollum. Doesn’t indicate when you link to a nonexistent page. No support for article tags.
Pepperminty wiki
Looks cool but it’s abandoned
Tiddlywiki
Steep learning curve but pretty versatile. It’s a single HTML file so you can host it on something like Neocities. Really rudimentary search functions
I’ve been using Outline for a while now. It has access control, external login (oidc, LDAP, GitHub, etc), a markdown compatible editor, plenty of integrations and is open source.
It’s fairly new and has some annoying bugs like not being able to resize mermaid diagrams, but for basic text articles it’s perfect.
I use DokuWiki, and i love that it’s plaintext files. it makes backing them up so much easier. I can literally just zip the directory, then upload to somewhere else.
I am the only user on it, and i don’t use too many advanced features, so I don’t know how it stacks up against other more advanced wikis, such as mediawiki or wiki.js. Though I do use a lot of plugins, such as the infobox plugin. I love that plugin. It doesn’t rival MediWiki’s infobox, but it does the job well enough for me.
Note: I only have about 300 pages, so i have no idea how it stacks up against thousands or millions of pages, like MediaWiki.
Xwiki is missing.
For me after a similar search it is the current winner. Even though it has it’d downsides.
Pro:
-
It is well tested in a enterprise enviromentand mighty
-
It has all the features I personally found important for a company wiki, e.g. approval, versioning, templates, collaboration, integration api,etc.
-
It is fairly easy to extend it yourself
-
It is easy to host subwikis within the same installation with a self defined grade of independence - which is great for customer facing things,large projects with externals,etc.
-
The development community is big and enterprise focus and release cycles are good. (Not like a certain .js) There is very little chance it will stall suddenly as the wiki has been adopted by a lot of large companies which seem to support it.
Contra:
-
It is written in bloody Java
-
(even though this sentence is redundant with the one above) It is a resource hog
-
The look and feel is a bit outdated unless you customise it yourself. Then it is reasonably good.But there are basically no paid templates,etc.
-
Paid support is only available through third parties it seems.
-
I did the same search some six years ago for our company and ended up with MediaWiki. We had two requirements: ACL and Ease of Use for non-technical people.
Both of the above are missing in the plain MediaWiki but extensions helped out. There were few different ACL extensions and I can’t remember which one I picked. Ultimately now we have the secret access controlled side of the wiki and the internal “public” side where everyone can access.
VisualEditor was a key extension. It’s a rich text editor with minimal fuzz for MediaWiki. Users never have to deal with the MediaWiki markup which is a must for non-technical users.
I really like FeatherWiki as a lighter alternative to TiddlyWiki, it has fewer features but all the important ones are there.
I also need to mention thât the fossil scm has an integrated wiki, stores everything in a sqlite database (it’s made by the same people) and is also very lightweight
I use both dokuwik and, more recently, also wiki.JS.
Dokuwik is great and gets the job done but it’s a piece of an old world. Maybe it’s why I love it. Yes it’s ugly and hard to theme. It’s good old php all the way down.
Wiki.JS I love how consistent and easy it is to use and install. Has other drawbacks like require nodejs and store pages in a database, but uses markdown and feels modern and nice to use.
Pmwiki: own format, no access control, I would say it is a bit outdated.
DokuWiki
The table syntax at least is miles better [than MediaWiki]
For simple tables or for calculation tables, yes. It’s relatively close to Markdown, even.
Unfortunately it does not play nicely with any sort of advanced syntax on table cells themselves, such as lists inside tables. For that, I prefer the MediaWiki syntax even if it’s ugly (a DW plugin called exttab3 provides near 1:1 MW table syntax).
Some stuff like tags and moving pages have to be achieved via plugins. Seriously you can’t even rename a page?
IMO it’s one of its strengths, and you can do most stuff with plugins. You can even render your pages as web slides with one plugin, and in fact I used to use DW as my “PowerPoint” for quickie presentations for over a decade.
All that said, there are DW “bundles” that incorporate some good and cool things together from the get-go. Anything that incorporates the Include, Indexmenu and Wrap plugins should be golden for getting started.
As for moving, I’ve asked around for a couple of years (more like 8) and seen how things have changed (or not), and it turns out it’s half a consequence of documents being plain text files (there had to be some sort of disadvantage to that!). While it might (actually, is) possible to just move a file, there is no cheap, simple and fast way to also update all links that point to that page across the wiki, as those might be not normal links or even be dynamically generated by plugins. So most implementers are at the philosophical stage of “what even is a ‘move’?” ATM.
I hear there are improvements with some plugins that advance some of the work, but I haven’t tested myself. Don’t need to, since I just use the Page Redirect plugin if I want to mark stuff as “moved”.
Mutilates article titles. Makes everything lowercase and replaces non alphanumeric chars with underscores (or something else configurable)
Mutilates file names and mutilates article titles, separately.
The former is one of the PITAs in the design I feel. There are good, stable patches that allow uppercase filenames in the filesystem (as well as Unicode and even emojis) bu no core config option to enable them. The closest option is “safe filename encode” I think, which allows most accented letters, diacritics and stuff, but no punctuation signs, and still replaces into underscores.
I get the why (it’s very useful for making sure article and section IDs are unique) but, like, still. It’s 2026, I can name my second video card like the poop emoji and my system won’t complain.
The latter is a configurable option actually. Just set the “use heading” preference to “always” and articles will always be titled the way the first heading available does it (so, technically, the same behaviour as MediaWiki).
Disclaimer
I’ve used MediaWiki for 6 years and DokuWiki for [*checks notes*] about 18.
if you have access to the file system, sed works well for renaming files and updating the links. Though admittedly, that’s not a very convenient way to to do it.
edit: and fucks up the page edit history a little too.
Have you tried
Outline?
I recently set it up and I’m very impressed.
I am also using it and it is really easy to use and looks nice.
Here are a few more:
logseq
Its an outliner, a colleague of mine basically lives in that thing.
silverbullet
It’s almost perfect for me but the browser based editing made it unusable because there is no way to unmap Ctrl + W in a browser and I can’t live without my Vim bindings.
QOwnNotes
This is the solution for normal people who don’t spend n+1 hours tweaking their editor configuration.
Org-Roam
For people who do spend n+1 hours tweaking their emacs configuration.
+1 for logseq… it literally saved my life when I changed jobs, nothing else came close.
However, the original markdown version has really slowed down development whilst the newer db version is slowly catching up, so, I’d rcommend the MD version for now, but people might want to hold for a little while…
logseq
Forgot about logseq. It’s an outliner first and foremost, so not what I’m looking for.
silverbullet
This one’s almost there. No version history. For accessibility reasons I’d like something that clearly separates the acts of writing/editing and reading/consuming. It works better with screen readers. In silverbullet, headings only look like headings, but they’re just undifferentiated text to a screen reader. Obsidian has the same problem). I get why people want a seamless editing experience, but it’s very important to me to keep track of how my ideas change over time, and Obsidian and Silverbullet are constantly saving your edits, making versioning difficult.
Helix notes (mentioned recently in another post) tries to get past this by having a “save new version” button.
QOwnNotes
Very very simple. I can see why some would be attracted to it but I’m not.
Very very simple.
Really? I find it quite feature packed for a notes taking app.
I split my wiki-hopes and wishes into memos: https://github.com/usememos/memos
And hedgedoc: https://github.com/hedgedoc/hedgedoc
Dokuwiki user here. Your cons are true, but compared to the cons of other ones, they are all solvable. The concern with a plug-in being required to do something is silly. It’s open source and the plugin system is limitless. If it’s ugly, make a theme. I’ve never had a problem with article titles being mutilated, but then again, I treat the file name (e.g. the url of the page) separate from the root header as you’re supposed to.
Considering your comment about search being awful in another wiki, it’s pretty good in Dokuwiki.
Considering how much you care about plain text, you should probably discount the con about file names as I’m pretty sure that’s part of why Dokuwiki does what it does. It’s an actual text file sitting in a directory that matches the path.
For what it’s worth, I admire Obsidian. If it’s a personal project with no intent to share, that’s what I’d use. For business or public hosting, I’d use (and do use, at my company) Dokuwiki.
What about a static site generator? Plaintext, markdown, but renders to html with headings and whatnot. Version control is because it’s in git.
Read access control is difficult though. You could do some hacks like using encrypting files in the git repo (perhaps with SOPS), and then either using http basic auth to control access to specific pages or something like staticrypt. But these are not ideal solutions.
I have found gitit easy to install and use though not all that featureful. It uses git as a backing store and there is an apt package for it (apt install gitit).
tiddlywiki has one of the most insane search engines from this list. They have a whole filters syntax that can express pretty much anything imaginable, no? I went back to TW from Obsidian because I was tired from Obsidian’s trivial search functionality.
Lemme tell ya somethin about Tiddlywiki. Actually a lot of knowledge base software has this problem (I’ve specifically encountered it in Trillium, Obsidian, and TW).
You have your body where you’re austencibly storing the meat of your information. But you also have configurable metadata fields. Obsidian has its YAML headers, and TW and Trillium have separate metadata forms. All three of these have scads of methods for sorting and querying and filtering the metadata but next to nothing for the actual note. But the note is already organized data. It has headings and subheadings and text under those headings. Why can’t that be queried? I got into this on the TW forums. Everyone was basically telling me to cram all of the actual data into the header, leaving the note itself virtually empty. Obsidian has its bases feature which does the same thing. Then why not just have a bunch of YAML files? A genuine question, I’d actually love a system for sorting and querying a bunch of organized YAML files almost like a noSQL database. But Obsidian doesn’t let you do that. It has to be markdown.
I got off track there, but there it is.
If your note’s type is JSON (or TW’s native dictionary), you can query it as such in filters.
My search problem is that I rely on metadata a lot. It’s natural for me to want a UI that renders machine readable metadata in a way that my brain can process and that requires rich querying capabilities.
I tried them all and, so far, TW wins for me, with orgmode being second close (I like orgmode in vim, but it had some fatal rendering flaws and I don’t feel like using emacs just for notes).







