The topic-map-publication model
Topicary separates content into three distinct layers: topics, maps, and publication targets. This separation is what makes single-source, multi-channel publishing possible.
Layer 1: Topics (write)
Create and manage topics are the atomic units of content. Each topic covers one thing — a concept, a procedure, a reference entry. Topics exist independently of any particular output.
This independence is the key insight. A topic about "Setting up SSO" isn't inherently a page in your user guide, a section in your admin manual, or a slide in your onboarding deck. It's a self-contained piece of knowledge that can appear in any of those contexts.
Topics can reference How component reuse works (reusable blocks), contain Create conditional content blocks (audience-specific content), and include Use variable tokens in content (value placeholders). But the topic itself doesn't decide where it appears or how it's delivered.
Topics are the smallest publishable unit in Topicary. Unlike page-based systems where a document is the atomic unit, topics can be freely recombined across maps and outputs without duplication.
Layer 2: Maps (organize)
Create and organize a map define structure and hierarchy. A map is an ordered, nestable list of topics that says: "these topics, in this order, with this nesting."
Maps answer the question "what goes where" without duplicating content. The same topic can appear in multiple maps — your user guide map, your admin manual map, and your onboarding map can all include "Setting up SSO" without maintaining three copies.
Maps also define the navigation structure of the published output. The hierarchy you create with indentation becomes the sidebar navigation on a Publish a web site or the table of contents in a Generate a PDF.
A single topic can appear in multiple maps. This is one of the key advantages over page-based systems — you don't need to duplicate content to include it in different guides or outputs.
Layer 3: Publication targets (publish)
Publication targets define how content is rendered and for whom. Each target combines:
A map (which topics, in what order)
An output format (web or PDF)
A condition profile (which audience/platform values to include)
A variable set (which values to substitute)
This is where the three layers converge. One map can produce multiple targets — a web site for admins, a different web site for end users, and a PDF for compliance — all from the same source topics.
Why three layers matter
Without this separation, you'd face the choices that plague simpler tools:
One page per audience: duplicated content that drifts out of sync
One page with everything: overwhelming for readers who only need their part
Web only: no PDF, no Markdown, no alternative outputs
The three-layer model avoids all of these. Write once at the topic level. Organize in any number of ways at the map level. Publish any number of variants at the target level.
The three-layer separation is not just an architectural choice — it's what makes it possible to maintain one source of truth while publishing different outputs for different audiences. Every other feature (reuse, conditions, variables) builds on this foundation.
The publishing pipeline
When you click Publish, the The publishing pipeline processes each topic in the map through four stages:
Stage | What it does | Feature used |
|---|---|---|
Resolve | Replaces Insert component references with component content | |
Filter | Removes Create conditional content blocks that don't match the target's condition profile | |
Replace | Substitutes Use variable tokens in content with values from the target's variable set | |
Render | Converts the resolved content to HTML (for web) or print-ready HTML (for PDF) |
The result is a fully rendered output where every component is expanded, every condition is resolved, and every variable is substituted. The reader sees clean, complete documentation — the authoring machinery is invisible.
See also
What is a CCMS? — the broader context for why this architecture exists
Create and organize a map — hands-on guide to building maps
Publish for multiple audiences — use the target layer to publish variants for different audiences
Publication target settings — configure output format, condition profiles, and variable sets per target