In informatica, un **Content Management System** è un software che facilita la gestione di un sito web.
Consente:
- A utenti non tecnici (come team marketing o clienti) di creare, modificare e pubblicare contenuti tramite un’interfaccia dedicata, senza la necessità di intervenire direttamente sul codice.
- Dal punto di vista architetturale, consente agli sviluppatori di modellare i contenuti come entità strutturate dinamicamente tramite **template**, evitando la duplicazione di pagine e componenti ripetitivi come articoli di blog, pagine portfolio, header e footer.
<br>
- **Scenario A**: In un sito sviluppato senza CMS, ogni nuova pagina di blog richiede l’intervento di uno sviluppatore web. Lo stesso vale per qualsiasi modifica ai contenuti esistenti: anche una semplice correzione di testo implica l’accesso diretto ai file del sito, spesso tramite hosting, con interventi su codice HTML e CSS. Con un CMS, invece, i contenuti vengono salvati in un database e inseriti dinamicamente all’interno di template predefiniti: la struttura della pagina (layout, header, footer, ecc.) rimane fissa, mentre i contenuti vengono “iniettati” nei template al momento della visualizzazione, separando così gestione dei contenuti e sviluppo.
<br>
- **Scenario B**: Una delle criticità più comuni dell’architettura senza CMS riguarda la gestione dei componenti ripetuti. Ad esempio, in un sito statico costruito in HTML, elementi come l’header devono essere duplicati in ogni pagina. Di conseguenza, se il sito ha 30 pagine e si rende necessaria una modifica all’header, l’intervento va replicato manualmente su tutte le istanze. Con un CMS l'header viene definito una sola volta e poi richiamato dinamicamente in tutte le pagine. I contenuti vengono inoltre memorizzati in modo centralizzato e strutturato all’interno di un database SQL, rendendoli facilmente recuperabili dal sistema di rendering.
___
Un CMS diventa praticamente inevitabile quando:
- hai **più di 10–20 pagine simili**
- hai un **blog attivo**
- hai **cataloghi (prodotti / servizi / case study)**
- il cliente deve aggiornare contenuti da solo
- hai elementi ripetuti (header, footer)
---
Il CMS più diffuso è [[WordPress]], poi abbiamo
- Wix
- Squarespace
- Shopify (per e-commerce)
- [[Webflow]]
- Joomla
- Drupal
- Sanity (headless)
- Kirby (file based e non database sql-based)
La maggior parte dei CMS tradizionali però limita significativamente personalizzazione e performance: si parte da template e griglie predefinite e la modifica avanzata del codice è spesso vincolata o meno immediata.
Per questo sono nati i **CMS headless**, che separano completamente contenuti e Front-end: il CMS gestisce solo i contenuti e li espone via API, mentre il sito può essere costruito con qualsiasi tecnologia o framework.