The Open Platform for Enterprise Content
Publish licensed content using open standards with clear rights, versioning, provenance and lifecycle metadata — to humans and AI agents in real time.
- In production since 2010
- JSON Schema, REST & GraphQL
- OAuth 2.0 & SAML 2.0
- Gitana Cloud (US & EU) or self-managed
store:book
{
"_doc": "a1f3c9e27b5d40e86c12",
"_type": "store:book",
"title": "Hamlet",
endowed by store:licensed "rights": {
"license": "CC BY-NC 4.0",
"holder": "Example Press",
"territories": ["US", "EU"]
}, "_features": {
"store:licensed": { "enabled": true }
},
provenance on every change "_system": {
"changeset": "44:95f85022da145981fc85",
"modified_by": "editor"
}}
Validated against the store:book schema and its features on every write.
store:authored-byWilliam Shakespeare store:authorstore:suggestsMacbeth store:bookstore:suggestsRomeo and Juliet store:booka:childof Books n:nodea:has_tagtragedy
Typed, directional associations. Traverse, query or fetch the neighborhood with GraphQL.
masterspring-catalogRelease: Spring 2026
44:95f85022Merge spring-catalog into master · 1 conflict resolved in/summary43:7c21d0a4Edit/summaryon spring-catalog · editor42:e9a03f61Add EU torights.territorieson spring-catalog41:3b5d8e17Edit/summaryon master · editor
Every change is a changeset. Releases promote approved branches on schedule.
Model content the way your business actually works.
Gitana stores content as a graph of typed nodes and associations, defined with JSON Schema. Features inject shared properties and behaviors across types, and every write is validated against the compiled model before it is accepted.
store:bookType{
"_qname": "store:book",
"_type": "d:type",
"_parent": "n:node",
"properties": {
"title": { "type": "string" },
"summary": { "type": "string" }
},
"mandatoryFeatures": {
"store:licensed": {}
}
}
A type defines the shape of a book. It inherits from n:node and requires every book to carry rights.
store:licensedFeature{
"_qname": "store:licensed",
"_type": "d:feature",
"properties": {
"rights": {
"license": { "type": "string" },
"holder": { "type": "string" },
"territories": { "type": "array" }
}
}
}
A feature adds shared fields and behavior to any type that needs them, or to a single node.
store:authored-byAssociation{
"_qname": "store:authored-by",
"_type": "d:association",
"_parent": "a:linked",
"properties": {
"role": {
"type": "string",
"enum": ["author", "editor"]
}
}
}
An association is a typed, directional link from a book to its author that carries its own properties.
- Validation
- Every write is checked on the server and the client against the type plus every feature applied to it.
- Rules & behaviors
- Bind policies such as “before a node is updated” (
p:beforeUpdateNode) to rules, scripts or web hooks. - Query & traversal
- Full-text search, SQL-like query, graph traversal and GraphQL over the same content.
Every change is a changeset. Every team gets a branch.
Gitana versions content the way source control versions code. Editors work in isolated workspaces, compare and merge with visual differencing, and promote approved releases on a schedule — with a complete, restorable history of every edit.
- Changesets with point-in-time comparison and restore
- Branches and workspaces for parallel work without collisions
- Merge with conflict detection and field-level resolution
- Releases scheduled and promoted across editorial, staging and live
/summary changed on both branchesHamlet is a tragedy by Will Shakespeare, believed to have been written between 1599 and 1601.
Hamlet is a drama by William Shakespeare, believed to have been written between 1599 and 1601.
Rights, provenance and lifecycle travel with every node.
The metadata that makes content trustworthy is part of the content itself, so every application, site and AI agent that consumes it receives the same rights and history.
GET /nodes/a1f3c9e27b5d40e86c12
{
"_type": "store:book",
"title": "Hamlet",
"summary": "Hamlet is a tragedy by William Shakespeare…",
rights "rights": {
"license": "CC BY-NC 4.0",
"holder": "Example Press",
"territories": ["US", "EU"]
},provenance "_system": {
"changeset": "44:95f85022da145981fc85",
"modified_by": "editor"
}}
approved data set · master
Can we use the Hamlet summary in our EU catalog?
Yes, for non-commercial use. The summary is licensed CC BY-NC 4.0 by Example Press for the US and EU.
store:book- License
- CC BY-NC 4.0
- Territories
- US, EU
- Changeset
44:95f85022- Release
- Spring 2026
- Rights
- Model licenses, holders and territories as data on the content, and enforce them with rules before anything ships.
- Provenance
- Each node records who changed it, when, and in which changeset, with audit trails across projects.
- Lifecycle
- Workflow-driven review and approval, then scheduled releases from editorial to staging to live.
- Delivery
- REST, GraphQL and SDKs for applications; CDNs, S3 and HTTP targets for publishing; approved data sets for AI agents.
Your cloud or ours. The same platform either way.
Choose a fully managed service operated by the team that builds Gitana, or run it inside your own infrastructure with full control.
Gitana Cloud
Fully managed, monitored and upgraded for you.
- Hosting regions in North America (Virginia) and Europe (Frankfurt)
- Upgrades, backups, monitoring and high availability handled for you
- Encryption at rest (AES-256, AWS KMS) and in transit (TLS)
- Continuous encrypted backups replicated across data centers
Self-managed
Run Gitana in your data center or private cloud.
- Docker containers with Kubernetes and Helm guidance
- Runs on Amazon EKS and ECS, Azure AKS, Google GKE or on-premises
- Signed images with SBOM, VEX and scan results for every release
Open APIs, with the tools your teams already use.
Every capability is available through a REST API, GraphQL and SDKs for popular languages and frameworks. Query by structure, search full text, or traverse relationships across the content graph with GraphQL.
- Integrations
- AWS Azure Google Cloud Okta Ping Identity IBM Watson Kaltura Slack
# Content licensed for the EU, on master # $API is https://api.cloudcms.com (Gitana Cloud) curl -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ --data '{ "rights.territories": "EU" }' \ "$API/repositories/$REPO/branches/master/nodes/query"
branch.queryNodes({ "rights.territories": "EU" }) .each(function() { console.log(this.title, this.rights.license); });
Supported by the people who built it.
Gitana customers work directly with the engineers behind the platform — from architecture and content modeling through migration, upgrades and day-to-day operations. Independent and profitable since 2010, we are built for long-term partnerships.
I'm continually blown away by how far above and beyond you all go to support us. Absolutely the best customer service I've ever received.
Check our work before you talk to us.
Security and platform teams can verify how Gitana is built, shipped and operated without waiting for a sales call.
- Security overview
- Hosting, encryption, identity, backups and penetration testing in one document. Gitana Cloud runs in ISO 27001-certified data centers.
- Read the overview
- Signed images
- Every release image is signed with Sigstore cosign. Verify the signature offline against our published key.
- Browse releases
- SBOM and VEX
- CycloneDX and SPDX bills of materials, VEX statements and vulnerability scan results for each image.
- See release artifacts
- System status
- Current and historical availability of Gitana Cloud, with incident reports.
- View status
See Gitana with your own content
Talk with a solutions engineer about your content model, governance requirements and deployment — hosted in our cloud or running in yours.