Documentation
Concepts
What the objects in Narraxio are, how they relate, and which of them exist today. This is the conceptual reference; the developer and API pages cover the surfaces.
The core objects
Six objects carry most of the model. Everything else is a view over them.
- Content Asset
- The unit. A headline, a paragraph, a CTA, an FAQ answer, a proof point, a meta description or a structured block — with a stable identifier, a type, a language, a status and a source binding. The identifier survives rewording, which is what makes history, reuse and eventually performance data attachable.
- Source Binding
- The exact address an asset came from: repository, file, export, object, field. Resolved through the syntax tree rather than by line number, and re-verified against the latest revision before any write. Without it, editing source is guesswork.
- Source Fact
- An approved business or product truth with an owner, a reviewer, evidence and a validity window — kept deliberately separate from the copy derived from it. Facts are what make a claim checkable and what make a product change into a content work queue.
- Brand
- A voice, a vocabulary, a set of audiences and a permission boundary. An organization can hold several; isolation is the default and sharing is an explicit grant.
- Relationship
- A typed edge between objects: belongs to brand, describes product, derived from fact, appears on page, in section, variant of, translated from, reuses, supersedes, targets audience. Typed rather than tagged, because the consequences differ.
- Version / Event
- An append-only record per asset. Imported, edited, AI-suggested, reviewed, approved, published — each a separate event with an actor and a timestamp. Versions are added, never rewritten.
Content asset fields
The shape an asset carries. Typed and nested values are preserved rather than flattened into text.
- content_asset_id, organization_id, brand_id, optional product_id
- type, language, value or structured value
- status, intent, funnel_stage, audience_ids
- source_binding_id
- created_at, first_seen_at, last_changed_at, published_at
- provenance summary and current_version_id
Workflow states
Seven states, and the reason AI Suggested is one of them separately from Draft: reviewers read the two differently, and collapsing them removes the signal they most need.
- Imported — came from a source, untouched
- Draft — a person is working on it
- AI Suggested — a model proposed it, nobody has accepted it
- In Review — submitted against the policy for its content type
- Approved — cleared, not yet published
- Published — live at its publication locations
- Archived — retained with its history, no longer in use
The modules, and what each one owns
Eight modules over one graph. The table is the quickest way to see which one a given question belongs to.
| Module | Owns | The question it answers |
|---|---|---|
| Content Graph | Assets, relationships, search | What do we have, and where does it appear? |
| Models & Sources | Parsers, content types, bindings | What shape is it in, and where exactly did it come from? |
| Brand Brain | Voice, facts, messaging, audiences, guardrails | What are we allowed to say, and on what evidence? |
| AI Studio | Ask, brainstorm, create, rewrite, repurpose, translate | What should this say instead? |
| Provenance & Governance | Authorship, AI records, versions, approval | Who wrote it, what touched it, who signed it off? |
| Content Health | Drift, duplication, unsupported claims, gaps | What is wrong with what we have? |
| Publish & Sync | Patches, pull requests, releases, API, webhooks | How does an approved change reach production? |
| Performance & Activation | Exposure, conversions, revenue, campaigns | Did any of it work? |
Keep reading
The rest of the documentation
Give your content a memory. Give your AI the full picture.
Connect a repository read-only and see what has been sitting inside it — every headline, claim and near-duplicate paragraph, with the file and field each one came from.
Keep Git and your existing stack Read-only to start Narraxio runs on Narraxio