Un CMS headless separa il repository dei contenuti dal livello di presentazione front-end. Il contenuto viene archiviato come dato strutturato e distribuito tramite API, indipendentemente da come e dove verrà visualizzato.
In un content management system tradizionale, contenuto e presentazione convivono nello stesso sistema: modificare il contenuto significa modificare anche il modello. Un content management system headless mette fine a questa dipendenza.
Il termine "headless" si riferisce alla rimozione della "head", la testa, ovvero il livello di visualizzazione front-end, dal corpo del CMS. Ciò che rimane è un repository di contenuti strutturati che archivia le voci come dati, indipendentemente da come o dove verranno visualizzate. L'applicazione front-end dello sviluppatore richiede quei contenuti tramite API REST, API GraphQL (o entrambe) e li renderizza secondo le proprie regole di progettazione.
Al centro di qualsiasi CMS headless c'è il modello di contenuti: un insieme di tipi di contenuti strutturati che definiscono i campi, le relazioni e i formati di ogni voce. Poiché questi tipi non hanno vincoli visivi, la stessa voce di contenuto può essere visualizzata in modo diverso a seconda del canale che la utilizza.