Atlas
Scheduled Sep 26, 2026A wiki whose search respects your permissions.
Replaces
- Atlassian Confluence · Atlassian Corporation — no published list price
- Notion · Notion Labs, Inc. — $20 per seat per month (Business), about $96,000/yr at 400 seats
Rented, per year
$96,000
Notion list price at 400 seats.
Owned, per year
$11,760
AWS infrastructure only. Azure is $12,720.
Build
11 weeks
2 engineers. To parity on the core features above, including migration of spaces, page trees, history, attachments and permissions from Confluence or Notion exports.
Difficulty
4/5
Substantial. Compliance or realtime depth involved.
Reference organisation: 1,500 seats of which 400 are editors, 180,000 pages, 12 years of history, 900 GB of attachments, single region, prod + non-prod. 3-year Compute Savings Plan on Fargate / 3-year reservation on Container Apps. Aurora minimum 1 ACU in prod. OpenSearch on two r6g.large.search data nodes; Azure AI Search Standard S1 with one replica and one partition. Attachments on S3 Standard-IA / Blob cool. Excludes LLM gateway token cost for summarisation and embeddings backfill. Figures are infrastructure only and exclude the build.
What it is
Atlas is a knowledge base and internal wiki: nested spaces, block-based pages, page history, inline comments, templates, and a search that filters by permission at query time rather than at index time. It is aimed at organisations past roughly 500 seats, where the wiki has become the place institutional memory lives and simultaneously the place nobody can find anything. Atlas takes two problems seriously that hosted wikis handle loosely: search results that leak the existence of documents people should not see, and the slow rot of pages nobody owns.
Why this one stops making sense
- Notion Business lists at $20 per seat per month billed annually. Fifteen hundred seats is $360,000 a year for what is, structurally, a document store with a good editor.
- Atlassian will not quote a fixed per-user price for Confluence Cloud at all — the published calculator is progressive and renders client-side, so budgeting requires a quote rather than arithmetic.
- Everyone needs read access to the wiki, and per-seat pricing means contractors, interns and the wider business get excluded from the system that explains how the company works.
- Ten years of pages is the most valuable unstructured dataset in the company and the most likely to be needed for a due diligence, an incident review or a tribunal. Export produces a directory of HTML with broken links.
- Search and permissions interact in ways vendors document vaguely. If you cannot read the code, you cannot answer an auditor asking whether a revoked employee could still see a title in autocomplete.
What ships
- Spaces and nested pages with inheritance-based permissions and explicit overrides
- Block-based editor with tables, code blocks, diagrams, embeds and page properties
- Full page history with diffs, restore, and a record of who changed what and when
- Inline and threaded comments with resolution state and mention notifications
- Templates and page blueprints, including required properties per space
- Permission-aware search: results, counts and autocomplete all filtered before display
- Semantic search over page content with citations, usable by Converse for AI answering
- Page ownership, review dates and automatic staleness flagging with owner nudges
- Public and partner-facing documentation spaces published from the same source
- Unlimited free read-only seats across the whole organisation
Data model
Stack
- frontend
- Next.js 15 App Router + Tailwind + a ProseMirror-based editor with Yjs for collaboration
- backend
- NestJS on Node 22 — content API plus a search-orchestration service
- database
- PostgreSQL 16 with Row Level Security per space and page, and pgvector for embeddings
- cache
- Redis 7 for permission resolution, presence and rendered-page caches
- queue
- BullMQ for indexing, embedding, staleness sweeps and publication
- auth
- OIDC against the customer IdP; SCIM 2.0 for groups and membership
- search
- OpenSearch or Azure AI Search for candidate retrieval, with permission filtering in Postgres
- ai
- Optional page summarisation and retrieval-augmented answering through an LLM gateway
Parity, honestly
What we match, and what we do not.
The rows marked No are the important ones. If one of them is the reason you bought Atlassian Confluence, keep buying it — and we will tell you that on the first call rather than the fifth month.
| Capability | Atlassian Confluence | Ours | Note |
|---|---|---|---|
| Spaces, nested pages and inherited permissions | Yes | Yes | — |
| Block editor with rich content and embeds | Yes | Yes | Notion's editor is exceptional and ours is merely good. That is an honest difference in polish. |
| Page history, diffs and restore | Yes | Yes | — |
| Inline comments and mentions | Yes | Yes | — |
| Permission-filtered search including counts and autocomplete | Partial | Yes | Filtering happens before results exist, so a restricted title never appears in a suggestion list. |
| Free unlimited read-only seats | No | Yes | The wiki is only useful if everyone can read it. |
| Semantic search with citations | Partial | Yes | Embeddings computed in your account; the index is yours and Converse queries it directly. |
| Notion's databases, views and relations | Yes | No | Half of Notion's value is that it is also a relational tool. Atlas is a wiki. Grid covers structured data, and if your team runs its work inside Notion databases, moving to Atlas alone loses that. |
| Confluence's Jira integration and the wider Atlassian ecosystem | Yes | No | Smart links, requirement traceability and Jira macros are deeply wired. If your engineering process depends on them and you are staying on Jira, replacing Confluence is the wrong project. |
| Marketplace of apps and macros | Yes | No | The Atlassian Marketplace has thousands of add-ons. We build the handful you use. |
| Vendor-run SOC 2 and ISO 27001 attestation | Yes | No | Atlas inherits your cloud posture. |
| Real-time collaborative editing | Yes | Yes | CRDT-based, with presence and offline reconciliation. |
| Public documentation publishing | Partial | Yes | Published as static output to your own CDN from the same page source, with no separate product. |
| Mobile applications | Yes | Partial | Installable PWA with offline reading. A store-listed native app is a separate engagement. |
Reference architecture
Built twice, on purpose.
Every application in Techtons ships with a production architecture for AWS and one for Azure, using the same diagram grammar so you can read them side by side. Your cloud, your account, your bill.
Amazon Web Services
- Compute
- ECS Fargate (api, collab, indexer) behind an ALB, with the collaboration service holding Yjs documents
- Data
- Aurora Serverless v2 PostgreSQL with pgvector, OpenSearch Service, ElastiCache Redis
- Storage and edge
- S3 for attachments and published static output, CloudFront in front of both
- Identity
- Cognito federated to the customer IdP, with group claims mapped to Atlas groups
- Observability
- CloudWatch and OpenTelemetry; search latency and permission-filter drop rate both tracked
- Infrastructure as code
- Terraform, one module per environment
Services
The decision worth arguing about
Access control lists are never copied into OpenSearch. The obvious design indexes each page with the groups allowed to read it and lets the search engine filter, and it is faster and simpler and has one flaw that matters: reindexing is asynchronous, so between a permission change and the reindex completing there is a window — typically seconds, occasionally minutes under load — in which a revoked user still gets hits. For a support knowledge base that is a nuisance; for a space containing redundancy plans or an acquisition, it is the incident. Atlas instead treats OpenSearch as a candidate generator: it returns document identifiers ranked by relevance, and Postgres applies Row Level Security and returns only what the current user may actually read, using permissions that are correct the instant they are committed. The trade-off is that the search engine's result count and pagination become untrustworthy, because post-filtering shrinks every page by an unknown amount. We over-fetch by a factor of three and paginate in the application, which is invisible for ordinary users and degrades measurably for someone whose access is unusually narrow — a contractor with two spaces out of four hundred can force several round trips to fill a page of ten results. We cap that at three fetches and show fewer results rather than spin, and we would rather show a short page than a leaked title.
Microsoft Azure
- Compute
- Container Apps (api, collab, indexer), collaboration service pinned to a minimum of one replica
- Data
- PostgreSQL Flexible Server with pgvector, Azure AI Search, Azure Cache for Redis
- Storage and edge
- Blob Storage for attachments and static output, Front Door Standard for edge
- Identity
- Microsoft Entra ID directly, with Entra groups as the permission principals
- Observability
- Azure Monitor and Application Insights
- Infrastructure as code
- Bicep, azd-compatible layout
Services
The decision worth arguing about
Azure AI Search has native document-level security trimming against Entra groups, which removes exactly the problem the AWS design works around — you can filter inside the index, on group membership the search service resolves itself, and there is no over-fetch. We use it, and the honest catch is one most teams meet in production rather than in design. Entra ID only emits group membership directly in the token up to roughly 200 groups; past that the token carries an overage claim pointing at Microsoft Graph, and resolving it means a Graph call on the request path. In a 1,500-person company with a group per team, per project and per region, plenty of people are past that limit, so Atlas resolves transitive group membership through Graph once per session and caches it in Redis for fifteen minutes. That cache is the trade-off, and it reintroduces a smaller version of the staleness the AWS design was avoiding: a permission revoked at 10:00 can survive in one user's cached membership until 10:15. We accept that for group changes and force an immediate cache eviction on explicit page- and space-level permission changes, which are the ones people make when something has actually gone wrong.
Sources
Every price on this page, with the page we read it from and the date we read it.
| Product | Plan | List price | Checked | Source |
|---|---|---|---|---|
| Atlassian Confluence | Cloud Standard / Premium | Not published | 2026-09-05 | www.atlassian.com/software/confluence/pricin Atlassian publishes Confluence Cloud pricing only through an interactive, client-rendered calculator on this page; the rate is progressive and falls as user count rises, so there is no single per-user list price to quote. Atlassian's own licensing page confirms 'monthly pricing is progressive' with volume discounts. We do not publish a number we cannot pin to a fixed tier. |
| Notion | Business | $20 / seat/month | 2026-09-05 | www.notion.com/pricing Billed annually. Plus lists at $10 per seat per month; Enterprise is quoted by sales. |
Should you still be paying for Atlassian Confluence?
Two weeks, fixed price. We audit what you actually use, map it against Atlas, cost the replacement on your own AWS or Azure account, and give you a delivery plan. If the honest answer is to keep the licence, that is what the report will say.