Zero-Storage CMS: We Built a Content System That Never Touches Your Data
Security review now happens before the feature demo, and the first question is where the content lives. Here is how we built Cortex, a headless CMS that reads and writes the client's own database and stores nothing of its own.
The Decisive CMS Question in 2026: "Where Does Our Data Live?"
Editor features used to decide CMS deals. Now the security questionnaire arrives first, and it asks two questions that a feature list cannot answer. Where does the content physically live, and who has the technical ability to read it?
A few things pushed the conversation there:
Data residency rules with real penalties. The CMS GDPR Enforcement Tracker puts cumulative fines in the billions of euros, and cross-border transfers to unvetted sub-processors are a recurring theme in them.
Sector compliance. In HIPAA healthcare, SOC 2 environments, and ISO 27001 financial firms, every external datastore holding production content is one more system in scope for audit.
Lock-in that procurement has learned to price. Getting millions of documents, nested relations, and taxonomies back out of a proprietary SaaS datastore is a months-long project, and buyers now ask about it up front.
Cortex is our answer to that. It is a headless CMS that stores nothing of its own.
Instead of holding content in our cloud, it runs as a stateless layer over the client's existing database, whether that is PostgreSQL, MySQL, or MongoDB. The editorial interface is ours. The data never leaves their infrastructure.
CB Client Presentation Layer • Modern React / Next.js Admin UI • Ephemeral WebCrypto Auth & Session → | TLS 1.3 Tunnel | ZE Cortex Zero-Storage Engine • Dynamic Schema Introspection • AST Query Compiler MQL / SQL • Row-Level Security RLS Mirroring • In-Memory Buffer Zero Disk Writes → | Direct VPC Peering | DB Enterprise Data Layer • AWS RDS PostgreSQL / Aurora • Azure MySQL / MongoDB Atlas
Rendering diagram...
Defining the "Zero-Storage" Paradigm
In a standard SaaS headless CMS (Contentful, Sanity, Strapi Cloud), the vendor provides both the user interface and the persistent database. When content creators draft an article or publish a product catalog, that content is uploaded, indexed, and stored inside the vendor's multi-tenant cloud storage clusters.
A Zero-Storage Headless CMS eliminates this persistence layer entirely.
It functions as an ephemeral gateway:
When an administrator authenticates, Cortex initiates a secure connection directly to the client's enterprise database cluster.
The engine dynamically inspects the database schema, introspects tables or collections, and generates an administrative UI and GraphQL/REST API endpoints on the fly.
Every write, edit, publish, or delete operation is translated directly into database-native queries executed strictly within the client's private database.
When the session terminates, all credentials and ephemeral caches are flushed from volatile memory. Zero customer records ever touch persistent vendor disks.
Deep-Dive into the Core Engineering Architecture
Editing someone else's database, safely, without a schema you defined, took four pieces:
1. The Dynamic Adapter Abstraction Layer
One editing interface has to sit over three unrelated query languages. We compile content operations to an abstract syntax tree, then let a per-engine adapter emit the actual query:
2. Runtime Schema Introspection (No Static Config Files)
Most headless CMSs make you declare the content model twice, once in the database and once in a schema.js or content-types.json file, then keep the two in sync forever.
Cortex reads the database instead:
On connect, it walks foreign keys, JSONB columns, indexes, and constraints.
It generates form fields, relationship pickers, and validation rules from what it finds.
Run a migration in the backend repo and the admin UI reflects it on the next reload. No config change, no redeploy.
The trade is that a badly named column produces a badly labeled field. Introspection is only as good as the schema underneath it, and we added a label override map for exactly that reason.
3. Ephemeral Memory Pipelines and Secure Credential Tunneling
Holding another company's production database credentials is the part of this architecture that has to be right:
Credentials are encrypted with AES-256-GCM under customer-managed keys, so the client can revoke access without involving us.
Decrypted connection strings live in memory for the life of a session and are never written to disk.
Traffic between the CMS and the database runs over TLS 1.3, or over VPC peering where the deployment allows it.
4. Row-Level Security (RLS) Mirroring Layer
Application-level permission checks fail open. One missed WHERE clause in one code path and a tenant sees another tenant's rows. So we push isolation down to where it cannot be bypassed, using PostgreSQL's FORCE ROW LEVEL SECURITY:
Before each query, Cortex sets app.current_tenant_id with SET LOCAL inside the transaction, so the value cannot leak across pooled connections. From there Postgres enforces the boundary. A bug in our query builder produces an error, not a data leak.
Architectural Comparison: Zero-Storage vs. Traditional Headless CMS
Architectural Dimension
Traditional SaaS CMS (Contentful / Sanity)
Self-Hosted Open-Source (Strapi)
Cortex Zero-Storage Engine
Data Residency
Third-party multi-tenant cloud
Self-hosted server + disk
100% Client Enterprise DB
Database Ownership
Proprietary vendor datastore
Self-managed separate database
Direct BYO DB (Postgres/MySQL/Mongo)
Security Boundary
Vendor sub-processor liability
Server OS + DB patch burden
Stateless translation inside client VPC
Vendor Lock-In
High (proprietary JSON ASTs)
Moderate (custom ORM schemas)
Zero (Native SQL / MQL tables)
Compliance surface
Vendor is a processor and enters your audit
You own the infrastructure compliance
No content leaves your infrastructure, which simplifies the Article 28 conversation
Real-World Case Study: Cortex in Enterprise Production
We deployed this for a healthcare communications provider handling patient-facing literature. Cortex runs as a stateless container in their AWS account, peered to their own RDS PostgreSQL cluster. See the Cortex case study for the full build.
What that changed for them:
Vendor security review cleared in under two weeks. Worth being precise here: this was their internal review of us as a vendor, not a SOC 2 attestation, which requires an observation period no architecture can shorten. It went quickly because there was no ePHI crossing our network to assess.
No migration. Their existing PostgreSQL schema became the content model as-is. Not one record moved.
Query latency in the low milliseconds, since the CMS pools connections inside the same VPC as the database.
When Should You Build a Zero-Storage CMS?
Ideal Use Cases:
Regulated industries. Healthcare, financial services, and government, where third-party data residency is ruled out by law or by policy.
Existing databases that need an editor. You already have the relational or document data. What you lack is an interface non-technical staff can use.
Multi-tenant SaaS. You need to offer enterprise customers dedicated storage without hand-building an admin panel per tenant.
When Alternative Architectures Are Preferable:
No one to run the database. If provisioning and maintaining RDS or MongoDB Atlas is not something your team does, a hosted CMS like Contentful removes a real burden. Zero-storage moves work to you; that is the trade.
A marketing site with no relational data. Git-backed Markdown is simpler and costs nothing to run.
Frequently Asked Questions (FAQ)
What is a zero-storage headless CMS?
A headless CMS with no database of its own. It connects to the customer's existing database and runs queries there, so the vendor never holds a copy of the content.
How does Cortex handle media assets without storage?
It connects to the client's own object storage, whether that is S3, Google Cloud Storage, or Cloudflare R2. Uploads use short-lived pre-signed URLs, so the file goes from the editor's browser straight to the bucket without passing through our infrastructure.
Is zero-storage the same as headless?
No, and the two get conflated constantly. Headless means the frontend is decoupled from the content backend. It says nothing about where content is stored, and most commercial headless CMSs keep yours on their multi-tenant database. Zero-storage is a separate property layered on top.
Sharing battle-tested engineering perspectives on Web Development, Mobile Architectures, Enterprise AI, and Cloud Scalability from the NizSol engineering labs.
Was this technical breakdown helpful?
Your feedback directly guides our engineering editorial roadmap.
Partner With NizSol
Ready to scale your next web, mobile, or AI product?
Our team of senior architects and full-stack engineers helps fast-growing companies design, build, and deploy production-grade software with speed and precision.