React Email vs Maizzle: Componenti vs Tailwind per Email
Componenti React contro HTML con Tailwind: quale framework conviene a chi costruisce email su misura, e quanto costa l’invio che sta dietro.
Scelta consigliata: se la vostra applicazione è scritta in React, scegliete React Email. I template stanno nello stesso repository dei componenti, condividono tipi e funzioni di formattazione con l’app e vengono revisionati dagli stessi sviluppatori. Se il team lavora in HTML e Tailwind senza React, Maizzle è la strada più naturale. Il framework in sé non è la voce di costo più importante: Maizzle è self-hosted, mentre per React Email in questa pagina non è riportato un listino (prezzo su richiesta). Il costo ricorrente, quindi, sta nel servizio di invio: per esempio il piano Starter di Vero costa 54 $ al mese e comprende 5.000 profili e 10.000 email al mese.
Questa pagina è pensata per chi deve decidere come produrre email transazionali e di lifecycle, come benvenuto, reset della password, conferma d’ordine o fattura, oltre alle newsletter. Non confronta due prodotti concorrenti sullo stesso mercato: confronta due modi di scrivere l’HTML delle email e mostra come ciascuno si collega a un servizio di invio. La scelta del framework dipende da dove nascono le email, dal linguaggio di chi le modifica e da quanto volume dovete inviare.
Confronto rapido
La tabella riassume a chi si rivolge ciascuno strumento e quale limite incontrerete per primo. I prezzi riportati provengono dalle pagine ufficiali consultate il 7 ottobre 2026 e indicano il piano, la fatturazione e il volume a cui si riferiscono.
| Strumento | Ideale per | Prezzo (piano e fatturazione) | Limite principale |
|---|---|---|---|
| React Email | Team con un’app React e componenti da riusare | Prezzo su richiesta | Ogni modifica al template richiede competenza in React |
| Maizzle | Team che lavora in HTML e Tailwind | Self-hosted (pagina prezzi) | Serve una pipeline di build, e le classi vanno controllate nei client di posta |
| Vero (servizio di invio) | Programmi basati su profili utente ed eventi | Starter: 54 $ al mese, fatturazione mensile, fino a 5.000 profili e 10.000 email. Professional: su preventivo | Oltre i limiti dello Starter il prezzo passa a una quotazione personalizzata |
| SARE (servizio di invio, Polonia) | Aziende che inviano in PLN a database di destinatari | Standard: 315 PLN netto al mese nella fascia da 10.000 destinatari. È disponibile una prova gratuita | Il prezzo segue la fascia di destinatari; la vista annuale applica uno sconto del 15% |
Approccio React Email
React Email tratta ogni email come un componente React. Un template è una funzione che riceve parametri, come il nome dell’utente o l’URL dell’app, e restituisce una struttura di componenti come Html, Body, Container, Text e Button. Al momento dell’invio il componente viene renderizzato in HTML compatibile con la posta. Per un team di prodotto questo significa che l’email di benvenuto e l’email di fattura si scrivono nello stesso linguaggio della schermata che le genera.
Il vantaggio più concreto è la condivisione del codice. I tipi TypeScript che descrivono i dati dell’utente possono essere importati sia dall’applicazione sia dal template. Se un campo cambia nome, il compilatore segnala il problema prima che parta un’email con un segnaposto vuoto. Lo stesso vale per le funzioni che formattano date, importi e fusi orari: non vanno duplicate tra backend e template. Durante lo sviluppo, il server di anteprima mostra il risultato nel browser senza inviare nulla.
import { Html, Body, Container, Text, Button } from '@react-email/components';
export default function Benvenuto({ nome, urlApp }) {
return (
<Html>
<Body style={{ backgroundColor: '#f4f4f4' }}>
<Container style={{ padding: '24px' }}>
<Text>Ciao {nome}, il tuo account è attivo.</Text>
<Button href={urlApp} style={{ backgroundColor: '#1d4ed8', color: '#ffffff' }}>
Apri l’app
</Button>
</Container>
</Body>
</Html>
);
} Dove React Email convince: nei prodotti SaaS in cui le email nascono da eventi dell’applicazione, come una prova che scade, un pagamento rifiutato, un invito a un workspace o la conferma di una modifica di piano. Chi scrive la logica di business può scrivere anche il template, e i test sulla generazione dell’HTML possono far parte della normale suite del progetto. Per un team piccolo questo riduce il numero di passaggi tra chi sviluppa e chi consegna.
Dove manca: chi non scrive React non può intervenire sul template senza passare da uno sviluppatore. Gli stili sono oggetti JavaScript inline: sono prevedibili, ma diventano verbosi quando il design cresce e non si possono riusare con la stessa comodità di una classe. Inoltre il rendering va integrato nel server o nella pipeline prima dell’invio. L’HTML che esce dal componente è quello che il servizio di invio riceve, quindi ogni modifica va controllata nel risultato finale, non solo nel sorgente.
Prezzo: in questa pagina non è riportato un listino per React Email. Il costo da mettere in preventivo è il tempo di sviluppo e la manutenzione del progetto. Per le condizioni ufficiali consultate la pagina di React Email.
Approccio Maizzle
Maizzle porta Tailwind CSS nella scrittura delle email. Il template è HTML con classi utility, come p-6, bg-gray-100 o text-2xl, e durante la build il CSS viene trasformato in stili inline adatti ai client di posta. Per un team che già usa Tailwind per il sito o per l’app, le stesse classi e gli stessi token di colore e spaziatura producono email coerenti con il brand, senza una seconda libreria di stile da mantenere.
<table class="w-full">
<tr>
<td class="p-6 bg-gray-100">
<h1 class="text-2xl font-bold text-gray-900 m-0">Ciao, {{ nome }}</h1>
<a href="{{ urlApp }}" class="inline-block mt-4 px-6 py-3 bg-blue-500 text-white rounded">
Apri l’app
</a>
</td>
</tr>
</table> Il punto di forza è che il template resta HTML leggibile. Un designer o un responsabile marketing con una buona familiarità tecnica può capire la struttura senza imparare JSX. Il lavoro sui layout comuni si fa una volta sola, in un file di base da estendere nei singoli template, e le modifiche al design si propagano a tutte le email che lo usano.
Dove Maizzle convince: nei team con un front-end Tailwind e nessuna applicazione React, come i siti costruiti con Astro o con strumenti basati su HTML, dove le email devono riprendere lo stesso sistema visivo. Chi produce molte newsletter con layout simili trae vantaggio dalla struttura a layout e partial, perché un cambio di intestazione si fa in un punto solo.
Dove manca: la configurazione iniziale richiede tempo, perché bisogna definire la pipeline di build, i layout e le regole di inlining. Non tutte le proprietà che Tailwind genera hanno lo stesso supporto nei client di posta, quindi ogni classe nuova va verificata nel risultato. Il passaggio di build è anche un punto di manutenzione: chi lo gestisce deve sapere che il sorgente e l’HTML finale non coincidono.
Prezzo: Maizzle è un framework self-hosted. Il costo reale è l’ambiente di build, il tempo di setup e il servizio di invio che userete. Le informazioni ufficiali sono nella pagina prezzi di Maizzle.
Quanto costa in pratica: tre scenari
Nel tempo il costo che pesa di più non è il framework ma il servizio di invio. Vero conta profili ed email, mentre SARE segue la fascia di destinatari del database. Per questo il confronto va fatto su uno scenario reale. La tabella usa solo i prezzi pubblicati alla data indicata e segnala dove il volume esce dalla fascia nota.
| Scenario | Vero | SARE |
|---|---|---|
| 2.000 profili, 8.000 email al mese | Starter a 54 $ al mese, cioè 648 $ l’anno (12 × 54), entro i limiti di 5.000 profili e 10.000 email | Fascia da 10.000 destinatari: Standard a 315 PLN netto al mese |
| 5.000 profili, 12.000 email al mese | Oltre le 10.000 email dello Starter: serve il piano Professional, su preventivo | Standard a 315 PLN netto al mese, se la base resta nella fascia da 10.000 destinatari |
| 20.000 profili, 60.000 email al mese | Professional, su preventivo | Advanced (529 PLN) o Premium (859 PLN) netto al mese nella fascia da 10.000 destinatari indicata sulla pagina. Per una base da 20.000 destinatari: prezzo su richiesta |
Dalla tabella emergono due cose pratiche. La prima: quando la lista supera i limiti di un piano, il costo non cresce in modo lineare, perché il passaggio avviene verso una tariffa personalizzata o verso una fascia superiore. La seconda: con Maizzle il costo di licenza non esiste, perché il modello è self-hosted; con React Email il listino non è riportato in questa pagina, quindi il calcolo va fatto con la pagina ufficiale. In entrambi i casi il costo più alto è il tempo del team. Su un team di due o tre persone, una settimana di setup in più pesa più di qualunque differenza di piano.
Il piano annuale di SARE applica uno sconto del 15% rispetto alla vista mensile, secondo la pagina ufficiale. Vero, invece, mostra un prezzo mensile per lo Starter. Se confrontate i due servizi, normalizzate entrambi sulla stessa base mensile e sul volume che prevedete tra sei mesi, non su quello di oggi.
Quale scegliere in base alla situazione
La scelta dipende meno dalle funzioni elencate nelle pagine e più da chi scrive, chi modifica e dove vive il codice. La tabella traduce i casi più frequenti in una raccomandazione.
| Se la situazione è | Scegliete | Perché |
|---|---|---|
| L’app è in React o Next.js e le email riusano dati e componenti | React Email | Template, tipi e utility restano nella stessa base di codice |
| Il team lavora in HTML e Tailwind, senza React | Maizzle | Nessuna dipendenza da React, e le classi sono quelle già usate nel web |
| Il design system del brand è costruito su token Tailwind | Maizzle | I token si applicano alle email senza tradurli in oggetti di stile |
| Il marketing deve modificare i template senza sviluppatori | Nessuno dei due da solo | Entrambi richiedono codice. Per l’editing visuale valutate un editor dedicato come Stripo, BEE o Unlayer, e controllate che esporti HTML pulito |
| Serve un invio con database, segmenti e report | Un servizio di invio come Vero o SARE, più il framework | Il framework produce solo l’HTML. La gestione della lista e dell’invio è un problema separato |
| Il vincolo principale è il costo ricorrente di licenza | Maizzle, oppure React Email dopo verifica del prezzo | Maizzle è self-hosted; il costo si sposta sull’ambiente di build e sul tempo di manutenzione |
Checklist di avvio e migrazione
Che scegliate React Email o Maizzle, l’avvio segue le stesse fasi. Il lavoro più lungo è quasi sempre la migrazione dei template già esistenti, che spesso contengono HTML scritto anni fa e mai rivisto. La tabella mostra cosa cambia per ciascun framework.
| Passo | React Email | Maizzle |
|---|---|---|
| 1. Preparare il progetto | Installare i componenti nel repository dell’app, accanto alla logica di invio | Creare il progetto con Tailwind, il layout di base e la configurazione di build |
| 2. Definire i dati | Tipizzare i parametri del template con TypeScript | Definire le variabili del template e controllarle nell’output della build |
| 3. Anteprima | Usare il server di anteprima locale | Generare l’HTML in locale e aprire il file risultante nel browser |
| 4. Controllo nei client | Inviare a una casella di prova e controllare i client principali | Stessa verifica, con attenzione alle classi che il client non interpreta |
| 5. Integrazione con l’invio | Renderizzare il componente sul server e passare l’HTML al servizio via API | Esportare l’HTML finale nella pipeline o caricarlo nel servizio di invio |
| 6. Migrazione dei template | Ricostruire i blocchi ricorrenti come componenti riusabili | Convertire gli stili in classi Tailwind e ricontrollare ogni layout |
Come scegliere: tre domande concrete
Prima di decidere, rispondete a tre domande. La prima: chi modifica il template dopo il lancio? Se la risposta è uno sviluppatore, il framework va scelto per il linguaggio che il team usa ogni giorno. Se è una persona di marketing, nessuno dei due framework basta da solo, e serve un processo che passi dagli sviluppatori in modo esplicito, oppure un editor dedicato.
La seconda domanda riguarda dove nasce l’email. Se viene generata dal backend della stessa applicazione che produce gli eventi, React Email riduce i passaggi: il dato, il template e il test stanno nello stesso progetto. Se invece le email arrivano da un sito statico o da una pipeline separata, Maizzle si integra meglio con un processo di build già esistente.
La terza domanda è quanto pesa la manutenzione. Un framework con meno astrazioni richiede più disciplina sui client di posta, perché lo sviluppatore vede direttamente il markup e le classi. Un framework con più astrazioni nasconde alcuni dettagli, ma chi sta dietro al componente deve comunque conoscerli. Stabilite chi farà il controllo visivo prima di ogni campagna, con quale frequenza, e su quali client. Il costo nascosto di entrambi è la verifica ripetuta, non la scrittura iniziale.
Il flusso con il servizio di invio
Qualunque framework scegliate, l’HTML è solo una parte dell’email che arriva all’utente. Un flusso solido prevede una versione in testo semplice generata insieme all’HTML, un link di disiscrizione nelle email di marketing e gli strumenti per gestire rimbalzi e reclami. Questi elementi non dipendono dal framework, ma dal servizio di invio.
Il punto più delicato è la sintassi dei campi dinamici. Un template React usa variabili JavaScript, un template Maizzle usa segnaposto risolti in fase di build, e il servizio di invio ha una propria sintassi per i merge tag. Se il framework produce i valori già compilati, il servizio riceve HTML definitivo. Se lascia dei segnaposto, bisogna verificare che la sintassi coincida con quella del fornitore prima di ogni invio. Documentate questa scelta nel repository: è la prima fonte di errori quando cambia il fornitore.
Con Vero, la logica dei profili e degli eventi si collega ai dati che il template riceve, quindi conviene definire fin dall’inizio quali eventi scatenano quali email. Con SARE la base di destinatari è organizzata per fasce, perciò è utile preparare i segmenti prima di costruire il template, non dopo. In entrambi i casi la separazione tra produzione dell’HTML e gestione della lista è una scelta pulita: il framework esegue il rendering, il servizio decide chi riceve cosa.
Errori comuni da evitare
- Controllare solo nel browser. Un’email che sembra corretta nell’anteprima può comportarsi diversamente nei client di posta. Il controllo va fatto sull’HTML definitivo.
- Dimenticare la versione testuale. Con entrambi i framework è facile generare solo l’HTML. La versione in testo semplice va prevista nella pipeline.
- Scrivere gli URL nel template. Il link al prodotto deve arrivare come parametro, così lo stesso template funziona in staging e in produzione.
- Mescolare sintassi di merge. Usate una sola sintassi per i campi dinamici in tutto il progetto e controllatela a ogni cambio di fornitore.
- Migrare tutto in una volta. Migrate un template per volta, con confronto visivo, così non rompete tutte le email transazionali insieme.
Il verdetto
Scegliete React Email se la vostra applicazione è in React e volete che le email facciano parte della stessa architettura di componenti e tipi. Il vantaggio è la condivisione del codice; il prezzo è la dipendenza da React per ogni modifica al template.
Scegliete Maizzle se il team lavora in HTML e Tailwind e volete coerenza visiva tra sito ed email. Il vantaggio è un linguaggio già noto e nessun abbonamento al framework; il prezzo è una pipeline di build da configurare e da mantenere.
In entrambi i casi il costo ricorrente sta nel servizio di invio. Confrontate i piani sul vostro scenario reale di profili ed email, e leggete le pagine ufficiali di Vero e di SARE prima di ogni rinnovo, perché i limiti dei piani cambiano.
Domande frequenti
Si possono usare React Email e Maizzle insieme?
Sì, ma significa mantenere due sistemi di template e due processi di build. Di solito conviene scegliere un solo framework per famiglia di email: quelle transazionali generate dall’applicazione e quelle di newsletter prodotte da chi non scrive codice React. Se volete confrontarli, replicate la stessa email di prova in entrambi e contate le correzioni necessarie per portarla allo stesso risultato nei client di posta.
React Email ha un prezzo?
In questa pagina non è riportato un listino per React Email. Per le condizioni aggiornate consultate il sito ufficiale di React Email. Il costo da mettere in preventivo, in ogni caso, è il tempo di sviluppo e la manutenzione del progetto, più il servizio di invio che userete.
Quanto costa Maizzle?
Maizzle è un framework self-hosted: non si paga un abbonamento per usarlo come servizio. Il costo reale è l’ambiente in cui gira la build, l’eventuale hosting e il tempo di configurazione. I dettagli ufficiali sono nella pagina prezzi di Maizzle.
Quale servizio di invio costa meno con circa 10.000 email al mese?
Dipende dalla metrica di prezzo. Vero conta profili ed email: il piano Starter costa 54 $ al mese e comprende 5.000 profili e 10.000 email, quindi 648 $ l’anno (12 × 54). SARE segue la fascia di destinatari del database: nella fascia da 10.000 destinatari il piano Standard costa 315 PLN netto al mese. Le due valute non si confrontano senza un cambio, quindi il confronto va fatto sul preventivo finale con il vostro volume reale.
Serve conoscere React per usare React Email?
Sì. Il template è scritto in JSX con componenti React, quindi chi lo modifica deve saper leggere e cambiare un componente. Se nel team nessuno lavora in React, Maizzle è la scelta più adatta, perché il template resta HTML con classi Tailwind.
Maizzle è semplice per chi non conosce Tailwind?
Le classi sono leggibili, ma non basta conoscerle: bisogna sapere quali proprietà CSS i client di posta interpretano e quali ignorano. Chi parte da zero deve mettere in conto un periodo di apprendimento, oltre alla configurazione iniziale della build.
Posso cambiare framework più avanti?
Sì, ma la migrazione richiede lavoro. L’HTML prodotto è portabile, mentre i componenti React vanno riscritti come template con classi Tailwind, o viceversa. Per ridurre il costo, tenete i dati dei template separati dalla struttura grafica e documentate fin dall’inizio i campi dinamici.