La maggior parte dei prodotti SaaS aggiunge un blog come un ripensamento, tre anni dopo il lancio, quando il team marketing finalmente chiede perché il traffico organico è piatto. Gli sviluppatori tirano su un WordPress su un sottodominio, la SEO si disperde tra due proprietà e nessuno è il responsabile dell'integrazione. Due anni dopo il blog deve uscire in cinque lingue e ora l'ingegnere fondatore sta scrivendo una pipeline di traduzione su misura un mercoledì alle 23. C'è un modo più pulito di aggiungere un blog al vostro prodotto SaaS, e non richiede nulla di tutto questo.
Punti chiave
- Un blog dentro al vostro prodotto SaaS ha bisogno di tre cose: un archivio di contenuti, una API di consegna e uno strato di rendering nella vostra app. Saltarne uno si paga dopo.
- Le sottocartelle (
vostraapp.com/blog) consolidano la SEO. I sottodomini (blog.vostraapp.com) la frammentano. È la decisione più costosa che la gente sbaglia. - Contentful Lite parte da 300 $/mese. Sanity Free è limitato a 10.000 documenti. Costruire il proprio CMS costa da 4 a 12 settimane di ingegneria. Nessuna di queste è la risposta giusta per un piccolo team SaaS che vuole un blog online questa settimana.
- La REST API Delivery di Kamaan restituisce JSON standard a qualsiasi framework: Next.js, Nuxt, SvelteKit, Astro o qualunque altro. Auto-Multilingual Delivery pubblica le versioni spagnola, tedesca, francese e italiana nel momento in cui pubblicate in inglese.
- Il primo mese è gratis. Un account Kamaan copre siti illimitati a una tariffa mensile fissa, quindi aggiungere il blog al vostro secondo prodotto più avanti non aggiunge una seconda fattura.
Le tre parti mobili di un blog SaaS
Ogni blog SaaS ha le stesse tre parti, comunque lo costruiate.
La prima parte è l'archivio di contenuti. Qui vivono gli articoli come dati strutturati, con campi per titolo, corpo, slug, metadati, date di pubblicazione programmate e traduzioni. La seconda parte è una API di consegna che passa quel contenuto all'app che lo renderizzerà. La terza parte è lo strato di rendering dentro al vostro frontend SaaS che chiama l'API, incastra il contenuto nel vostro layout esistente e lo serve sotto il vostro dominio.
Quando i team provano a scorciare, di solito saltano l'API e incorporano un iframe, oppure saltano lo strato di rendering e ospitano il blog sotto un dominio diverso. Entrambe le scorciatoie costano più di quanto risparmiano. Un blog in iframe non contribuisce alla SEO del vostro sito perché Google indicizza il dominio sorgente dell'iframe, non il vostro. Un blog su sottodominio (blog.vostraapp.com) viene indicizzato, ma Google tratta i sottodomini come proprietà separate, quindi la vostra link equity non si accumula tra prodotto e blog. L'hosting in sottocartella (vostraapp.com/blog) tiene tutto sotto un solo dominio e una sola superficie SEO, ed è quello che ogni studio SEO credibile ha mostrato negli ultimi dieci anni.
Perché "usa WordPress" di solito è sbagliato per un prodotto SaaS
WordPress è il suggerimento di default perché tutti lo hanno installato almeno una volta. Per un sito marketing che non condivide il dominio con un prodotto va bene. Per un blog che deve vivere dentro a un frontend SaaS in React o Next.js, è un adattamento forzato.
L'integrazione diventa sempre un problema di reverse proxy. O fate girare WordPress su un sottodominio (e ci rimettete la consolidazione SEO), oppure mettete su una regola di reverse proxy che riscrive /blog/* verso una installazione WordPress separata. L'approccio reverse proxy funziona, ma introduce un secondo deploy, un secondo set di patch di sicurezza e un confine di stile dove la vostra app SaaS smette di sembrare se stessa. WordPress assume anche il rendering server-side di default, che combatte con i frontend SaaS moderni costruiti su Next.js, Nuxt o SvelteKit. Potete usare WordPress headless, ma a quel punto avete tutto il costo operativo di WordPress più il costo di integrazione di un headless CMS, e nessuno dei vantaggi multilingue o multi-sito che vi darebbe un headless CMS pensato per questo.
Un blog dentro a un prodotto SaaS non è un sito separato. È contenuto renderizzato dalla stessa app che renderizza la vostra UI di prodotto. Questo è ciò che risolve un headless CMS, ed è per questo che la domanda non è "WordPress sì o no" ma "quale headless CMS".

Come si presenta davvero un'integrazione pulita
Un'integrazione pulita ha quattro proprietà. Primo: il contenuto del blog viene recuperato da un singolo endpoint REST con JSON prevedibile. Secondo: quell'endpoint è abbastanza veloce da essere chiamato su ogni request senza una fase di build. Terzo: lo stesso archivio di contenuti serve ogni versione linguistica di ogni articolo, indicizzato in un modo che l'API capisce. Quarto: l'integrazione tocca il vostro repo esistente, non uno separato.
In Next.js, il pattern è un server component o un route handler sotto /app/blog/[slug]/page.tsx che chiama l'API del CMS al momento del render. Con la distribuzione via REST API di Kamaan, quella chiamata sembra un fetch standard contro /v1/sites/{site_id}/articles?slug=<slug>&language=en e restituisce il corpo dell'articolo, i campi SEO, l'URL dell'immagine in evidenza e la mappa completa delle traduzioni in una singola risposta. Lo renderizzate con il vostro layout esistente, la vostra tipografia esistente e i vostri analytics esistenti. Nessun secondo deploy, nessuno strato di stile separato, nessuna regola di proxy.
Lo stesso pattern funziona in Nuxt con una route server, in SvelteKit con una funzione di caricamento +page.server.ts e in Astro con una route statica o dinamica. Al CMS non importa quale framework usiate. È il senso di una API REST: il contratto è il protocollo di rete, non il framework.
Come scegliere, in una tabella
La maggior parte dei team non ha settimane per valutare ogni headless CMS sul mercato. Sotto c'è la versione onesta del confronto, valutata sulle dimensioni che davvero rompono l'integrazione di un piccolo team SaaS.
| Approccio | Tempo di setup | Costo mensile | Multi-sito | i18n automatica | Rischio di lock-in |
|---|---|---|---|---|---|
| Costruire il proprio CMS | 4 a 12 settimane | Tempo di ingegneria | Sì (il vostro codice) | No | Alto (il vostro codice) |
| WordPress su sottodominio | 1 a 3 giorni | Circa 20 $/mese di hosting | 1 installazione per sito | Plugin, a pagamento | Medio |
| Contentful Lite | 1 a 2 giorni | 300 $/mese | Environment add-on | Workflow manuale | Medio-alto |
| Sanity Free | 3 a 7 giorni (config Studio) | 0 $ a 15 $/utente/mese | Dataset per sito | Workflow manuale | Basso-medio |
| Kamaan | Meno di 1 ora | Primo mese gratis, poi annuale fisso | Illimitati sotto un account | 99+ lingue alla pubblicazione | Basso (REST standard) |
L'infografica sotto elenca lo stesso confronto con i callout che contano di più per un piccolo team che aggiunge un blog in questo trimestre.

Contentful fa pagare 300 $/mese al primo tier a pagamento. Sanity richiede schema-as-code e uno sviluppatore per configurarlo. Storyblok fa pagare per space, che si accumula veloce su più prodotti. Se avete un prodotto, una lingua e già conoscete il mondo headless, Sanity Free è ragionevole. Se avete più prodotti o vendete in Europa o LATAM, le colonne multi-sito e multilingue sono dove le differenze di costo si accumulano.
Passo per passo: aggiungere un blog a un'app SaaS esistente in meno di un'ora
Questo è il percorso con Kamaan. Sostituite con lo strumento che preferite se state valutando altri, ma la forma dei passi è la stessa per qualunque headless CMS con REST API.
- Create il sito nel vostro CMS. Scegliete un identificatore di sito che combacia con il vostro dominio. Con Kamaan è un form, un click. Ricevete una URL base di API e una chiave API in lettura. Nessuno schema da disegnare, nessuno Studio da fare il deploy. L'Article CMS vi dà rich text, campi SEO, immagine in evidenza e scheduling pronti all'uso.
- Aggiungete una route
/blogalla vostra app SaaS. In Next.js è/app/blog/page.tsxper l'indice e/app/blog/[slug]/page.tsxper l'articolo. In Nuxt, SvelteKit o Astro, la route equivalente basata sui file. - Recuperate i dati lato server. Usate il pattern di data fetching consigliato dal vostro framework. Per Kamaan, un
GET /v1/sites/{site_id}/articles?status=publishedrestituisce l'indice eGET /v1/sites/{site_id}/articles?slug={slug}restituisce un articolo. La risposta include il corpo dell'articolo in HTML, i campi meta SEO, la URL CDN dell'immagine in evidenza e la mappa delle traduzioni. - Renderizzate con il vostro layout esistente. Avvolgete il corpo dell'articolo nel vostro componente tipografico. Tenete header, footer e analytics dal resto dell'app. Aggiungete i meta tag dalla risposta API al vostro
<head>. Mettete gli hreflang tag dalla mappa delle traduzioni. - Configurate il routing dei locale. Per SaaS multilingue, il pattern di URL consigliato è
/[lang]/blog/[slug]. Kamaan restituisce una mappa di traduzioni per articolo, quindi potete renderizzare ogni versione linguistica sotto il suo prefisso di locale senza un secondo fetch per lingua. - Pubblicate. Scrivete l'articolo nel dashboard Kamaan, programmate o pubblicate, e l'API lo restituisce subito. Con Auto-Multilingual Delivery, le versioni spagnola, tedesca, francese e italiana vanno online contemporaneamente sotto i loro slug localizzati.
Il tempo totale, per uno sviluppatore che conosce il suo framework, è ben sotto l'ora. Gran parte va sulla tipografia e sul cablaggio dei meta tag dentro alla vostra app, non sul lato CMS.
Dove i fondatori perdono tipicamente mesi che non dovevano perdere
Tre pattern di fallimento spiegano la maggior parte del tempo sprecato che vediamo.
Il primo è mettere il blog su un sottodominio perché era più facile nella prima settimana. Sei mesi dopo i numeri di SEO sono piatti, qualcuno fa l'audit e il team ricostruisce comunque l'integrazione su una sottocartella. Scegliete la sottocartella al giorno uno e vi risparmiate questo ciclo.
Il secondo è scegliere un CMS che richiede schema-as-code (Sanity, Strapi) per un blog che ha gli stessi cinque campi di qualunque blog. Titolo, corpo, slug, immagine in evidenza, data di pubblicazione. Non c'è schema da disegnare. Il tempo di configurazione su un CMS schema-as-code è lavoro di ingegneria vero, e per un blog non si ripaga. Scegliete un CMS che esce con il content type del blog già definito.
Il terzo è pagare il multilingue a posteriori. Contentful, Sanity e Storyblok supportano contenuti multilingue, ma il workflow è "crea la versione inglese, poi per ogni lingua crea manualmente una voce tradotta". Per un team che fa uscire 4 articoli al mese in 5 lingue, sono 20 task di traduzione al mese che qualcuno deve gestire. Auto-Multilingual Delivery di Kamaan pubblica le versioni spagnola, tedesca, francese e italiana di ogni articolo nel momento in cui premete pubblica in inglese. Zero passi extra.
Scenari reali
Una fondatrice solo che gestisce uno strumento SaaS B2B di fatturazione vuole un blog per la SEO. Sceglie Kamaan, crea un sito, infila una route /blog nella sua app Next.js e la punta alla REST API di Kamaan. Il suo primo articolo è online sotto kamaan.io/blog/... lo stesso pomeriggio. Scrive il prossimo post in inglese, preme pubblica e in dieci minuti Kamaan ha auto-pubblicato le versioni spagnola, tedesca, francese e italiana su /es/blog/, /de/blog/, /fr/blog/ e /it/blog/. Google indicizza tutte e cinque in 48 ore. Non ha scritto una sola parola in una seconda lingua e non ha pagato un fornitore di traduzioni.
Un fondatore bootstrap che gestisce tre prodotti SaaS pubblica aggiornamenti del blog per tutti e tre da un singolo dashboard Kamaan. Un account copre tutti e tre i siti a una tariffa mensile fissa. Lo stesso articolo in prodotti diversi non condivide contenuto, ma il codice di integrazione in ogni frontend è identico: stessa forma di endpoint REST, stesso schema di articolo, stessa gestione multilingue. Quando lancerà il prodotto numero quattro il prossimo trimestre, aggiunge un sito, infila la stessa route /blog e va online lo stesso giorno.
FAQ
Come aggiungo un blog a un'app SaaS in Next.js senza rompere le mie route esistenti?
Create /app/blog/page.tsx per l'indice e /app/blog/[slug]/page.tsx per i singoli articoli. Recuperate i dati al momento del render usando fetch() dentro al server component, dal vostro headless CMS. Avvolgete la risposta nei vostri componenti di layout esistenti. Con la REST API Delivery di Kamaan, il corpo dell'articolo torna come HTML, quindi lo incastrate in un wrapper tipografico e lo servite sotto il vostro dominio esistente.
Il mio blog dovrebbe vivere su blog.miaapp.com o su miaapp.com/blog?
miaapp.com/blog. L'hosting in sottocartella consolida la SEO sotto il vostro dominio principale. Google tratta i sottodomini come proprietà separate, e questo frammenta la vostra link equity e rallenta il tempo per posizionarsi. L'unica ragione per usare un sottodominio è se letteralmente non riuscite a far renderizzare al vostro framework SaaS contenuto sotto /blog, cosa che essenzialmente non è mai vera per Next.js, Nuxt, SvelteKit o Astro.
Posso usare un headless CMS gratuito per il mio blog SaaS?
Sì, con riserve. Sanity Free è limitato a 10.000 documenti, abbastanza per un blog per anni. Contentful Free ha limiti più stretti su voci e chiamate API ma è praticabile per un blog piccolo. Il problema in entrambi è che i workflow multilingue sono manuali e il multi-sito costa extra. Il primo mese di Kamaan è gratis con multilingue completo a ogni pubblicazione, ed è il trial più pulito per un team che già sa di aver bisogno di traduzioni.
Mi serve uno sviluppatore per impostare un blog in headless CMS?
Per Sanity, Strapi o qualsiasi CMS schema-as-code, sì. Per Kamaan, Contentful o Storyblok, il CMS in sé è no-code; l'integrazione nella vostra app ha bisogno di uno sviluppatore per il routing, il fetching e il lavoro sul layout, che è tipicamente un pomeriggio per chi conosce il framework.
Come rendo multilingue il mio blog SaaS senza assumere traduttori?
Scegliete un CMS dove il multilingue è nativo, non un add-on. Auto-Multilingual Delivery di Kamaan pubblica le versioni spagnola, tedesca, francese e italiana nel momento in cui pubblicate in inglese. Ogni versione riceve il suo slug localizzato sotto /[lang]/blog/<slug>. Gli hreflang tag sono generati dalla stessa mappa di traduzioni. La fattura per le traduzioni resta a zero.
Qual è la differenza tra un headless CMS e un CMS tradizionale per un blog SaaS?
Un CMS tradizionale come WordPress dà per scontato di possedere il rendering. Un headless CMS memorizza e serve il contenuto via una API; la vostra app fa il rendering. Per un prodotto SaaS in cui il blog deve vivere dentro a un'app React, Vue o Svelte esistente, headless è l'unica architettura che funziona senza una patch di reverse proxy.
Quanto deve essere veloce l'API di un headless CMS per un blog SaaS?
Tempo di risposta sotto i 100 ms è la linea oltre la quale una pagina di blog si sente lenta. La REST API Delivery di Kamaan è servita da un edge CDN davanti all'archivio di contenuti, quindi le letture tipiche stanno ben sotto. Per pagine renderizzate server-side, avete anche l'opzione di cachare le risposte nello strato dati del vostro framework (Next.js revalidate, Nuxt useFetch con cache header) così la maggior parte delle request non tocca l'origine.
Aggiungere un blog al mio prodotto SaaS rovinerà i miei Core Web Vitals?
Solo se lo fate male. Renderizzate il blog server-side con gli stessi componenti di layout del resto della vostra app, servite le immagini da un CDN con attributi width e height corretti e tenete leggera l'impronta JavaScript della route del blog. Con la REST API Delivery di Kamaan e una route blog statica o renderizzata server-side, i Core Web Vitals restano dove erano prima che il blog esistesse.
Articoli correlati su Kamaan
- Cos'è un CMS Headless: una guida chiara per i team SaaS. La categoria spiegata senza gergo, con la tabella di confronto che potete passare a un cofondatore non tecnico.
- Miglior CMS Headless per startup: un confronto onesto con i prezzi. Valutazione fianco a fianco dei cinque strumenti che i piccoli team SaaS considerano davvero nel 2026.
- Come creare un blog multilingue: guida completa per i prodotti SaaS. La lettura più approfondita sul lato i18n, comprese le decisioni su hreflang e struttura degli URL.
Iniziate a costruire con Kamaan
Un endpoint REST, ogni lingua, ogni sito che lanciate.
Kamaan vi dà un dashboard per tutti i blog dei vostri prodotti, auto-tradotti in 99+ lingue a ogni pubblicazione. Un account copre siti illimitati a una tariffa fissa. Il MCP Server vi permette di pubblicare da Claude o ChatGPT. Primo mese gratis.

