In informatica un content management system, in acronimo CMS (sistema di gestione dei contenuti in italiano), è uno strumento software, installato su un server web, il cui compito è facilitare la gestione dei contenuti di siti web, svincolando il webmaster da conoscenze tecniche specifiche di programmazione Web.

Il CMS è uno strumento usato dai webmaster per gestire un sito web evitando di dover programmare dinamicamente l’intero software lato server che gestisce il sito. Generalmente offre un’interfaccia di amministrazione con cui l’amministratore può gestire ogni aspetto del sito web, senza il bisogno di possedere conoscenze tecniche particolari di programmazione Web.

Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (una wiki, un blog, un forum, un giornale online, ecc.) e CMS generici, che tendono a essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.

Quando si parla di “contenuti” si intendono dati, informazioni, conoscenze, in qualsiasi forma (testo, immagine, video, musica, software, ecc.). Quando si parla di “struttura” s’intende: impaginazione, formattazione, architettura, sezioni, gestione delle modifiche e delle versioni, gerarchia e privilegi dei ruoli, ecc.

Tecnicamente, un CMS è un’applicazione lato server che generalmente si appoggia su un database per l’archiviazione dei contenuti; l’applicazione è suddivisa in due parti:

una sezione di amministrazione (back end), che serve ad organizzare e supervisionare la produzione dei contenuti;
una sezione applicativa (front end), che l’utente web usa per fruire dei contenuti e delle applicazioni del sito. L’amministratore del CMS gestisce tramite un pannello di controllo i contenuti da inserire o modificare.
I CMS possono essere realizzati tramite programmazione in vari linguaggi web tra cui, più comunemente, ASP, PHP, Microsoft .NET; il tipo di linguaggio adoperato è indifferente a livello di funzionalità.

Alcuni linguaggi rendono il CMS multipiattaforma, mentre altri lo rendono usufruibile solo su piattaforme proprietarie.