DRY PAD: IL CLIENTE SIAMO NOI
Piattaforma e-commerce scritta da noi e uno strato AI collegato a store e Meta, che decide sulla spesa leggendo gli ordini nell'istante in cui vengono scritti. LCP 300 ms su desktop, 2,17 s su mobile con CPU rallentata 4x.
Il contesto: il cliente siamo noi
Dry Pad è un tappetino da bagno in diatomite fossile compressa ad alta densità: pietra porosa, nessun additivo, nessun rivestimento, superficie asciutta al tatto in circa sessanta secondi. Il marchio è di Efesto Group S.r.l. e il sito lo dichiara in chiaro, senza giri di parole: Dry Pad è un'iniziativa di ninjastuff.it. Non è un cliente. È un progetto nostro: prodotto, brand, piattaforma, campagne. Lo scriviamo subito perché cambia il peso di tutto quello che segue. Quando controlli l'intera filiera non hai alibi, e non c'è nessuno a cui girare la colpa se qualcosa non funziona. Il brief che ci siamo dati stava in tre righe: un sito costruito per convertire, su una piattaforma scritta da noi, con uno strato di intelligenza artificiale che tiene insieme le vendite e l'advertising. Un prodotto. Un kit a 49 EUR.

La prima decisione: costruire invece di affittare
La decisione più costosa in termini di tempo è arrivata per prima: niente piattaforma in abbonamento, store scritto da zero. La ragione non è la velocità delle integrazioni — le piattaforme in affitto espongono webhook di ordine che arrivano in pochi secondi, e chi racconta ancora la favola dell'export notturno racconta il 2015. La ragione è la proprietà del dato e il grado di accoppiamento. Su una piattaforma altrui lo schema degli eventi di comportamento non lo decidi tu, il join tra una sessione e l'ordine che ne è nato passa da una pipeline che possiede qualcun altro, le letture ad alta frequenza sbattono contro rate limit che non controlli, e quello che puoi scrivere è quello che l'API concede di scrivere. A noi serviva un livello software capace di leggere l'ordine nella stessa base dati che serve le pagine, con lo stesso schema, alla frequenza che decidiamo noi. O il dato è tuo, o l'automazione lavora su una copia di cui non governi la forma.
La piattaforma non è una scelta di comodità: è la scelta di dove vive il dato e di chi ne decide la forma. Se vendite e comportamento stanno in due sistemi diversi, ogni decisione automatica comincia da una riconciliazione — e una riconciliazione è un punto di rottura in più.
Cosa gira sotto il sito
Abbiamo scritto tutto quello che sta tra la vetrina e l'incasso. Catalogo e schede prodotto, con prezzi, bundle e omaggi gestiti come dati e non come stringhe dentro una pagina. Carrello a drawer laterale, che non fa mai cambiare pagina. Checkout su una nostra route: il form di pagamento è servito da Stripe dentro la nostra pagina, così il flusso resta nostro e il dato di carta non entra mai nel nostro perimetro. Area cliente su /account con token JWT firmati da noi. Backoffice proprietario su /admin. Email transazionali da Resend, chiamato dal nostro backend e non incluso nel pacchetto di qualcun altro. Scritti, non installati. È un lavoro che si giustifica solo se hai un motivo per farlo, e il motivo sta nel capitolo dopo.
La piattaforma: cosa gira e su cosa. Front-end, hosting, pagamenti e immagini sono verificabili dall'esterno; database, backoffice e autenticazione li dichiariamo noi che li abbiamo scritti.
| Componente | Implementazione | Cosa ci dà |
|---|---|---|
| Front-end | Next.js App Router, React Server Components, build Turbopack | HTML prerenderizzato in cache edge, 21,8 KB per la home |
| Hosting | Vercel, edge cache HIT, revalidate 300 s, HSTS a due anni | TTFB 147 ms su desktop, rete piena |
| Database | Istanza nostra, schema nostro | Ordini e pagine serviti dalla stessa base dati |
| Pagamenti | Stripe, chiave server-side, form di pagamento servito da Stripe | Unico gestore del dato di carta: la carta non tocca i nostri server |
| Email transazionali | Resend, chiamato dal nostro backend | Conferme e stati ordine senza provider incluso in una piattaforma altrui |
| Autenticazione clienti | JWT firmati da noi | Area /account senza identity provider esterno |
| Backoffice | Applicativo proprietario su /admin | Catalogo e ordini gestiti da noi |
| Immagini | Pipeline /_next/image, AVIF e WebP responsive | Peso servito in base al device, non al caso |
A monte di tutto c'è un endpoint di salute, /api/health, che dichiara lo stato dei componenti critici: la latenza del check di connessione al database — cinque millisecondi nel controllo del 10 settembre 2026 — e la presenza delle configurazioni necessarie a pagamenti, database, email e autenticazione. Lo usiamo come segnale di disponibilità per il monitoraggio e per l'automazione. Se un livello software muove budget pubblicitario in base agli ordini, deve sapere in ogni istante se lo store è in grado di raccoglierli: un checkout rotto che scopri dal calo degli ordini lo hai scoperto un giorno tardi, e nel frattempo la spesa ha continuato a scorrere. Va detto anche il rovescio, perché è una lezione e non un vanto: la mappa dei componenti di un sistema è informazione utile pure a chi lo vuole rompere, e un endpoint del genere si tiene stretto — stato e latenza, non l'inventario delle chiavi.
Una precisazione onesta sull'architettura, prima di passare alla parte interessante. La home è statica, prerenderizzata, con revalidate a trecento secondi: quello che leggi in pagina può avere fino a cinque minuti. Prezzo e disponibilità in carrello e in checkout sono invece letti a runtime dal database. La coerenza forte sta dove si incassa, non nella pagina in cache, ed è una scelta deliberata: paghi cinque minuti di ritardo sulla vetrina e ti compri un TTFB da cache edge su ogni singola visita da campagna.
La scheda prodotto e il carrello: due superfici, nessun cambio di pagina.


Lo strato AI: dove si aggancia
Da qui in avanti cambia il regime di prova, e preferiamo dirlo che lasciarlo intuire. I numeri di performance di questo caso studio li abbiamo misurati con uno strumento e chiunque può rifare la misura. L'architettura che segue è invece il disegno del sistema come lo abbiamo specificato e implementato noi: dall'esterno non è ispezionabile, e va letta per quello che è. Lo strato AI ha due prese di corrente: da un lato il nostro database, dall'altro le API di Meta. Dal database legge due flussi che nascono già uniti, perché lo stesso sistema che serve le pagine registra gli ordini: il comportamento sul sito e le vendite, con valore reale della transazione, bundle scelto e — dove il consenso lo permette — sorgente e creative della sessione. Verso Meta scrive budget, stato di campagne e ad set, audience, rotazione delle creative. Il consenso è un vincolo di progetto e non una postilla: il banner distingue cookie tecnici e di marketing, e il segnale pubblicitario parte solo dove è stato autorizzato.
Lo strato AI: il disegno del sistema, segnale per segnale. È architettura di progetto, non un log di esecuzione.
| Segnale | Origine | Decisione che alimenta |
|---|---|---|
| Ordine confermato, con valore reale | Base dati dello store, alla scrittura dell'evento | Riallocazione del budget tra gli ad set, con budget a livello di ad set |
| Scheda prodotto aperta senza acquisto | Percorso dalla home alla pagina prodotto | Quale obiezione sul prodotto riprendere nelle creative |
| Carrello aperto e non concluso | Front-end, evento registrato lato server | Insiemi di retargeting distinti per profondità del percorso |
| Punto di uscita dalla home | Front-end, sezione per sezione | Quale obiezione riprendere nel messaggio di retargeting |
| Sorgente e creative della sessione, dove c'è consenso | Parametri di campagna legati alla sessione | Attribuzione della creative all'ordine, non al solo click |
| Assenza di ordini in una fascia normalmente attiva | Base dati dello store | Contenimento della spesa prima della fine della giornata |
La differenza rispetto a un'automazione qualunque non sta nell'intelligenza del modello. Sta in quale metà dell'anello riesci davvero a chiudere. Il lato ricavo lo rileggiamo dalla nostra base dati nell'istante in cui l'ordine viene scritto, con il valore vero e non con una conversione stimata a valle. Il lato costo no: spesa, impression, delivery e stato di apprendimento arrivano dalle Marketing API di Meta con il loro ritardo di reporting e con un'attribuzione modellata. Il vincolo di latenza residuo sta lì, non nel nostro store, e un sistema onesto è progettato sapendolo. È anche la ragione per cui il comportamento sul sito pesa quanto le vendite: chi esce alla sezione del problema, chi si ferma sulla scheda tecnica e chi arriva al carrello senza concludere stanno dicendo tre cose diverse. Il primo non ha creduto al problema, il secondo ha un dubbio sul prodotto, il terzo ha un dubbio sul prezzo. Tre obiezioni, tre trattamenti.
Le decisioni che lo strato è progettato per prendere senza intervento umano:
- ▸Allocazione del budget. Sposta spesa tra gli ad set, con budget a livello di ad set, sulla base degli ordini scritti nella nostra base dati e non delle conversioni stimate a valle.
- ▸Accensione e spegnimento delle creative. Una creative che porta sessioni profonde e nessun ordine è un problema diverso da una che non porta nemmeno le sessioni: due diagnosi, due azioni.
- ▸Costruzione delle audience. Chi ha aperto il carrello, chi ha aperto la scheda prodotto e chi ha solo letto la sezione del confronto finiscono in insiemi diversi, con messaggi diversi.
- ▸Segnale di prezzo verso la comunicazione. Il punto in cui si ferma chi non compra — prima o dopo il prezzo — dice se l'ostacolo è il costo o il prodotto, e l'informazione torna nelle creative.
- ▸Presidio della giornata. L'assenza di ordini in una fascia normalmente produttiva contiene la spesa mentre la giornata è ancora in corso, invece di lasciartelo scoprire il mattino dopo.

Cosa non fa da solo. Non decide il posizionamento, non scrive l'offerta, non inventa un angolo di comunicazione, non tocca il prezzo, non produce le creative: quello resta lavoro umano. E non lavora senza limiti. Tetti di spesa. Volumi minimi prima di dichiarare vinta una creative. Finestre di osservazione che impediscono di reagire al rumore di venti minuti. Variazioni di budget contenute entro soglie che non rispediscano l'ad set in fase di apprendimento, perché un'automazione che spinge e tira ogni ora si paga da sola in learning. Frequenza di scrittura dentro i rate limit delle API. E un fatto scritto dentro il sistema invece che nascosto: con il consenso granulare la copertura del segnale sorgente-creative è parziale per costruzione, quindi le decisioni tengono conto di una copertura incompleta invece di far finta che sia totale. L'autonomia sta dentro un recinto, e il recinto lo disegniamo noi. Vale anche per questo caso studio: non pubblichiamo ROAS, fatturato o tassi di conversione, perché le uniche cifre che mettiamo per iscritto sono quelle che si misurano con uno strumento e si possono rimisurare.
Un sistema che decide da solo su dati sbagliati sbaglia più in fretta di un essere umano. Prima di collegare qualunque automazione alla spesa, verifica che ogni ordine tracciabile scriva valore, sorgente e creative, che non esistano eventi duplicati, e soprattutto che tu sappia quanta parte del traffico resta fuori dal tracciamento. Il tracciamento non è il passo due: è il passo zero.
Il sito è la prima fonte di segnale
Una piattaforma veloce non vende da sola. La home è costruita come una sequenza di obiezioni chiuse in ordine, ed è per questo che il punto di uscita è un'informazione utile. Dopo l'hero scorre una riga di trust, e subito sotto arriva la prova: la griglia di video verticali, prima ancora dell'argomentazione. È una scelta precisa, non una svista di ordine. Chi arriva da un'inserzione ha appena visto un claim, e la prima cosa che gli diamo è qualcun altro che lo verifica al posto suo. Poi il problema, con le cifre dichiarate a sito: trentamila colonie batteriche per centimetro quadrato su un tappetino in tessuto, quattordici giorni perché compaia la muffa, lavaggi che non risolvono, perché il problema non è lo sporco ma il tempo che la stoffa resta bagnata. Poi la materia, chiamata per nome: diatomite, pietra viva, nove millimetri di spessore, naturale al cento per cento. Poi il meccanismo, i milioni di micropori che spiegano il perché dei sessanta secondi. Solo dopo la macro della superficie e la scheda tecnica. L'ordine non è estetico. È argomentativo: chi non ha capito il problema non compra la soluzione.
La sequenza argomentativa: problema, materia, meccanismo. Arriva dopo l'hero, la riga di trust e la prova video.



L'offerta è la struttura del sito
Nessuno cerca un tappetino in diatomite. Le persone cercano di non avere quella cosa umida sul pavimento del bagno. Il prezzo è dichiarato già nell'hero, perché nasconderlo è una forma di sfiducia, e viene subito riancorato: senza un metro di paragone 59 EUR diventano automaticamente cari, e il metro lo costruiscono le sezioni che vengono dopo. La meccanica invece è ripetuta ovunque, dall'hero alla barra sticky: compri 1, ne ricevi 3. Acquisti il tappetino grande da 59,7 x 38,1 cm e ricevi in omaggio i due mini multiuso, per un set da 2,20 kg a 59,00 EUR invece di 79,00. Spedizione gratuita in due giorni lavorativi con corriere espresso e tracking, reso gratuito entro trenta giorni. Quattro obiezioni — quanto costa, cosa ricevo davvero, quando arriva, cosa succede se non mi piace — e nessuna delle quattro risposte nascosta dietro un link.

L'offerta come è esposta a sito, rilevata il 29 settembre 2026
| Voce | Come è dichiarata |
|---|---|
| Prezzo del kit | 59,00 EUR |
| Prezzo pieno di riferimento | 79,00 EUR |
| Sconto esposto | -25% |
| Cosa ricevi | 3 pezzi: il tappetino grande + 2 mini in omaggio |
| Spedizione | Gratuita, entro 2 giorni lavorativi con tracking |
| Reso | Gratuito entro 30 giorni |
Alla prima versione il sito proponeva anche un selettore con tagli da uno, due o tre kit. È stato tolto. Una pagina che vende un solo prodotto a un solo prezzo chiede una decisione sola — lo compro o no — e ogni scelta in più che le metti davanti è una ragione in più per rimandare. Oggi resta una cifra sola, ripetuta identica dall'hero alla barra sticky al carrello, senza opzioni preselezionate travestite da consiglio e senza timer che scadono. È una semplificazione che costa qualcosa: sparisce anche il segnale che il selettore produceva, cioè quanto valeva il prodotto per quella persona. Vale la pena solo se la conversione che guadagni supera l'informazione che perdi, ed è esattamente il tipo di scambio che un sito proprietario ti permette di misurare invece che di indovinare.
La scheda tecnica è un argomento di vendita
Un oggetto che si compra senza toccarlo va descritto al millimetro. La scheda riporta le tre misure reali, gli spessori, i pesi singoli e il peso del set, 2,20 kg. Riporta anche cosa succede dopo l'acquisto: durata stimata oltre due anni, manutenzione con un panno umido, rigenerazione della superficie con la carta vetrata inclusa nella confezione. La domanda vera di chi guarda un tappetino online non è quanto è bello, è quanto è grande davvero e quanto dura. Rispondere con una tabella invece che con una promessa fa due cose insieme: toglie un motivo di reso e costruisce credibilità. Chi pubblica le misure esatte non ha niente da nascondere sul resto.
Cosa c'è dentro il kit, con le misure dichiarate a sito
| Pezzo | Dimensioni | Spessore | Peso | Nel kit |
|---|---|---|---|---|
| Tappetino bagno grande | 59,7 x 38,1 cm | 0,9 cm | circa 1,95 kg | Acquistato |
| Mini multiuso | 21,6 x 8,9 cm | 0,9 cm | circa 165 g | In omaggio |
| Mini multiuso | 12 x 8,9 cm | 0,9 cm | circa 90 g | In omaggio |
| Set completo | 3 pezzi | 0,9 cm | 2,20 kg | 59,00 EUR |

Allargare l'uso, reggere il confronto, mostrare la prova
Restano tre obiezioni. La prima: lo uso solo in bagno? La griglia dei casi d'uso porta il prodotto su doccia, scolapiatti, lavandino, cucina, ciotole degli animali, bordo vasca, scarpe bagnate, barca, ingresso, giorni di pioggia, garage e sci, camera e spazzolino. Tredici contesti, e i due mini in omaggio sono lo strumento con cui il cliente aggiunge il quattordicesimo da solo. La seconda: su un marketplace costa meno. La sezione di confronto mette l'originale americano — come lo dichiara il sito, progettato negli Stati Uniti — contro le imitazioni, riga per riga. Quel confronto il cliente lo fa comunque, in un'altra scheda del browser: l'unica scelta è se lo governi tu o se lo lasci a una griglia di risultati ordinati per prezzo. La terza: funziona davvero? La risposta sta in alto, subito sotto l'hero, ed è la griglia di video verticali con l'audio che parte al tocco. Non foto prodotto su fondo bianco. Acqua vera versata su una pietra vera. In coda arrivano otto FAQ, marcate come FAQPage nei dati strutturati insieme a Organization, WebSite e Product: non per i rich result, che Google ha ristretto dal 2023, ma perché rendono la pagina leggibile a una macchina — motori di ricerca e assistenti. E dopo le FAQ, l'ultima chiamata all'offerta.
Le tre sezioni che reggono le obiezioni residue: estensione d'uso, confronto, prova.



La velocità fa parte del funnel
Le cifre di questo caso studio sono misurate, non stimate. Le abbiamo prese il 10 settembre 2026 su drypad.it con Playwright e il protocollo CDP, un run per profilo. Desktop a 1440 x 900 su rete piena: TTFB 147 ms, First Contentful Paint 288 ms, Largest Contentful Paint 300 ms, CLS a zero, load completo a 401 ms, con 21,8 KB di HTML su 38 risorse per circa 649 KB complessivi, di cui circa 267 KB di video. Mobile emulato a 390 x 844, con CPU rallentata quattro volte e rete a circa 1,6 Mbps con 150 ms di latenza: LCP 2,17 s e CLS 0,022. I due Core Web Vitals di caricamento e stabilità restano quindi in fascia Good anche su un telefono deliberatamente rallentato. Diciamo anche il resto, perché una tabella che si contraddice con il testo accanto vale zero: INP non è stato misurato in questa sessione, e l'FCP mobile — che non è un Core Web Vital ma una metrica di supporto — resta sopra il riferimento di 1,8 s. Sotto non c'è nessun trucco: HTML prerenderizzato, cache edge, e lazy loading di tutto ciò che non serve al primo schermo.
Performance misurata sulla home, 10 settembre 2026, un run per profilo (Playwright + Chrome DevTools Protocol)
| Metrica | Desktop 1440x900, rete piena | Mobile 390x844, CPU 4x, 1,6 Mbps | Soglia Good |
|---|---|---|---|
| LCP (Core Web Vital) | 300 ms | 2,17 s | sotto 2,5 s |
| CLS (Core Web Vital) | 0 | 0,022 | sotto 0,1 |
| FCP (metrica di supporto) | 288 ms | 2,17 s, sopra il riferimento di 1,8 s | non applicabile |
| TTFB | 147 ms | non attendibile sotto emulazione di rete | non applicabile |
| Load completo | 401 ms | 3,40 s | non applicabile |
| Risorse richieste | 38 | 35 | non applicabile |
| Peso trasferito | circa 649 KB, di cui circa 267 KB di video | circa 602 KB | non applicabile |
Il lazy load non fa sparire i video dal peso della pagina: dei circa 649 KB trasferiti nella sessione desktop, circa 267 KB sono la griglia UGC. Li sposta fuori dal percorso critico del primo schermo, ed è esattamente quello che serve. La griglia sta in terza sezione, alta nella pagina: caricarla in eager invece che in lazy avrebbe messo il contenuto che dimostra il prodotto in concorrenza con il contenuto che lo rende visibile.
Misurato a 1440x900 su rete piena il 10 settembre 2026 con Playwright e protocollo CDP, un run per profilo. CLS 0 nella stessa sessione. Sul profilo mobile throttled, CPU rallentata quattro volte e rete a 1,6 Mbps, i valori sono LCP 2,17 s e CLS 0,022.

Le 5 lezioni chiave
Cosa portiamo fuori da questo progetto:
- ▸La scelta della piattaforma è una scelta su chi possiede la forma del dato. Costruire costa di più all'inizio; in cambio decidi tu lo schema degli eventi, il join tra comportamento e ordine e la frequenza con cui li leggi, senza chiedere permesso all'API di qualcun altro.
- ▸Vendite e comportamento devono nascere nello stesso posto. Ricongiungerli dopo, con integrazioni e riconciliazioni, si può fare. Farli nascere già uniti è un ordine di grandezza più semplice da mantenere, e ogni riconciliazione risparmiata è un punto di rottura in meno.
- ▸La velocità è una sezione del funnel. 300 ms di LCP su desktop e 2,17 s su mobile con CPU rallentata quattro volte valgono per una ragione sola: sono le persone che restano abbastanza a lungo da leggere la seconda sezione.
- ▸L'ordine delle sezioni è argomentazione, non estetica. Prova, problema, materia, meccanismo, dati, offerta, obiezioni: ogni sezione esiste per chiudere quella prima di lei, e il punto in cui l'utente esce ti dice quale obiezione non hai chiuso.
- ▸L'AI chiude un anello, e bisogna dire quale metà. Il lato ricavo lo puoi rendere istantaneo, se il dato è tuo. Il lato costo arriva con il ritardo di reporting della piattaforma pubblicitaria. Un sistema che finge di chiudere l'anello intero prende decisioni sicure di sé su informazioni parziali.
“Volevamo un posto dove provare tutto senza chiedere il permesso a nessuno, e dove se una cosa non funziona la colpa è solo nostra.”
— Founder, Ninja Stuff
Un e-commerce quasi mai ha un problema di creative: ha un problema di anelli aperti. Ogni punto in cui un dato esce dal sito e non torna indietro con il suo valore reale è un punto in cui stai comprando pubblicità al buio. Dry Pad è stato costruito nell'ordine inverso rispetto all'abitudine: prima l'anello, poi il sito, poi le campagne.
Leggi anche
COMPROCAUSA: CHI HA RAGIONE E RINUNCIA
In Europa una sentenza civile di primo grado arriva mediamente dopo tre-cinque anni. Così chi ha ragione lascia perdere per aritmetica. ComproCausa pre-valuta la causa gratis e, se è idonea, la segnala a fondi terzi: software, sito e marketing li abbiamo fatti noi.
IL CROLLO DEL WEEKEND
Perché le tue campagne performano diversamente nel weekend e come sfruttare il day-parting a tuo vantaggio.
IKADO JEWELS MILANO
+127% revenue in 8 mesi. Come abbiamo trasformato un e-commerce fermo in una macchina di vendita.
Vuoi risultati come questi?
3 minuti di test. Ti mostriamo dove stai lasciando soldi sul tavolo.