A company wiki: spaces of pages with templates, comments and approvals, tied into the rest of the Atlassian tools and permissioned for large organisations.
Build me a company wiki that replaces Confluence — and know what makes this ALMOST. Pages and search are a fortnight. Two things are not: **permissions granular enough for a large organisation**, inherited across spaces and pages and correct in search results, and **the tie-in to the issue tracker**, where a page and an issue reference each other automatically. If you are a small team, neither matters much and this is nearly a YES. If you are five hundred people with confidential spaces, the permission model is the project. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode, with FTS5 - Caddy in front THE DATA MODEL - spaces: id, key, name, description, is_personal, permission_default, homepage_id - pages: id, space_id, parent_id, title, body_md, body_html, version, status, created_by, updated_by, published_at, archived_at - versions: id, page_id, title, body_md, author_id, at, message — every save, with a diff and a restore - permissions: id, subject_kind, subject_id, scope_kind, scope_id, action, effect — a person or a group, a space or a page, read or write or admin, allow or deny - labels, attachments, comments (inline and page-level), watchers, tasks extracted from checkboxes - links: from_page_id, to_page_id, resolved at save; external_links: page_id, tracker, issue_key - templates: id, space_id, name, body_md — the blueprints a team fills in PERMISSIONS, WHICH IS THE HARD PART - Inheritance: a page inherits from its parent, which inherits from the space. An explicit rule on a page overrides it - Deny beats allow, always, and at every level. Getting the precedence wrong once means a confidential page visible to everyone, and nobody will discover it deliberately - Resolved into an effective permission per person per page and cached, invalidated when any rule in the chain changes. Recomputing it per request will not survive a large tree - Checked inside every query, including search. Filtering results after the query is exactly how a confidential title leaks into an autocomplete - A page that shows why somebody can or cannot see a given page, generated from the rules. Without it, permission questions become tickets - Groups from the identity provider through OIDC, so membership is not maintained twice THE PAGE - Markdown with a live editor, slash commands, nested pages, and macros for the handful of embeds people actually use — a table of contents, a status label, an expandable section, a code block, a child-page list - Autosave to a draft, publish as a version with an optional message - Inline comments anchored to a selection, resolvable, and page comments threaded - Checkboxes become tasks with an assignee and a due date, listed across the space. That is the feature people use most and rarely notice THE TRACKER TIE-IN - Mentioning an issue key renders it with its live status and title, fetched and cached - A page linked from an issue and an issue linked from a page, both directions recorded - Read-only. Never write to the tracker from here SEARCH - FTS5 over titles, bodies, attachments' extracted text, and comments, with titles ranked far above bodies - Filters by space, label, author, date - Permission-aware in the query - Record searches that found nothing — that list is the pages people expected to exist STAYING FRESH - A page carries an owner and an optional review period; when it lapses, the page says so at the top. A wiki dies by filling with pages that were true once, and this is the cheapest defence - Archive rather than delete, with a restore OPERATIONS - .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET, OIDC_*, TRACKER_TOKEN - Migrations on boot, each once; nightly backup off the machine, restore script - Export the whole space as Markdown with attachments in one command - Health endpoint WHAT MATTERS MOST Effective permissions, cached and applied inside the query. Build and test that before a single page looks good, including the case of a private child under a public parent.
What you lose
- Permissions granular enough for a large company, inherited across spaces and pages
- Integration with Jira, so a page and an issue reference each other automatically
- Search across a decade of pages that people actually find things in
- Page history, comparison and restore over years of edits
- Compliance features: retention, legal hold, audit logs and data residency
If you would rather not build
- Notion — paid, more flexible, weaker permissions
What it costs
read from their page 15 Aug 2026
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| Standard | $6.70/mo | — | 15 Aug 2026 |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
BookStack
$0Documentation organised as shelves, books and pages, easy to self-host.
BookStackApp/BookStackfree · open source
Why this verdict
our own opinion · changed only by a person
42/100
Verdict kinda at 42: revisions, diffs and a decent search are one weekend, and the empty-search report is worth more than most wiki features. Where a build loses is permissions at company scale and the Jira link that makes Confluence hard to leave.
History
tracked since 9 Aug 2026 · nothing is ever overwritten
Questions about Confluence
answered from the record above
Is Confluence free?
No — the plan we track is $6.70 a month. Standard at about $6.40 per user per month; Premium roughly doubles it and a free tier covers up to ten users.
Can you replace Confluence by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 42 out of 100, build time a weekend. Read what you lose before you decide.
How much does Confluence cost?
$6.70 a month on Standard — $80.40 a year. Recorded 16 Aug 2026.
What do you lose by replacing Confluence?
Permissions granular enough for a large company, inherited across spaces and pages; Integration with Jira, so a page and an issue reference each other automatically; Search across a decade of pages that people actually find things in; Page history, comparison and restore over years of edits; Compliance features: retention, legal hold, audit logs and data residency. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Confluence?
Yes: Outline, BookStack. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

