Il problema
Una piccola redazione che gestisce siti WordPress deve seguire molte fonti, scegliere le notizie, scrivere, verificare i fatti, trovare un’immagine e poi pubblicare la stessa storia sui social e nei podcast. Ogni passaggio è manuale e avviene in uno strumento diverso.
Cosa ho costruito
Ho realizzato una piattaforma web multiutente che prende le notizie da feed e fonti web e le accompagna, attraverso la stesura con l’AI, fino alla pubblicazione su WordPress e su altri canali.
- Procedura guidata in 12 passi per gli articoli: fonte, notizia, ricerca approfondita, cinque proposte di titolo, attacco, corpo, revisione di fatti e grammatica, SEO, immagine, audio, controllo finale e pubblicazione. Ogni passo ha il suo endpoint, quindi un passo fallito si può ripetere da solo.
- Personaggi AI: profili d’autore con identità, tono e stile, riutilizzati da un articolo all’altro. Tutto ciò che è scritto a nome di un «autore» mantiene la stessa voce.
- Motore dei bot: bot pianificati recuperano le notizie, le filtrano, scrivono con il personaggio scelto e pubblicano o salvano una bozza. Lo scheduler controlla ogni 60 secondi e supporta programmazioni giornaliere, orarie, a intervalli e per giorno della settimana, con un tempo di attesa che impedisce esecuzioni doppie.
- Pubblicazione su più canali: più siti WordPress, Facebook, Instagram, X, Substack, podcast su Spreaker e WhatsApp, oltre a notiziari audio con le voci di ElevenLabs e video con gli avatar di HeyGen.
- Ruoli e crediti: 7 ruoli, dall’amministratore al tester. Ogni utente ha una quota di crediti, con il registro di ogni azione AI e ricariche tramite PayPal. Gli amministratori possono impersonare un utente per dargli assistenza.
- Pensata anche per team all’estero: l’interfaccia è tradotta in 8 lingue, tra cui arabo, hindi e cinese.
I numeri
- 111 gestori di route API dietro la dashboard.
- 67 pagine nell’applicazione, compresa l’area di amministrazione.
- 8 lingue dell’interfaccia e 7 ruoli utente con permessi distinti.
Con cosa è fatto
Next.js 14 con App Router, React 18, TypeScript e Tailwind CSS. NextAuth per l’accesso con email, Google o Facebook. MySQL 8 tramite mysql2. OpenAI per testi e immagini, con Gemini, ElevenLabs e HeyGen come fornitori aggiuntivi. Le chiavi API di ogni utente sono salvate cifrate con AES-256-GCM. Un plugin WordPress complementare in PHP aggiunge i ruoli di giornalista e di redazione dentro WordPress. Ho anche confezionato la piattaforma come prodotto self-hosted, con guide all’installazione e all’architettura.
Perché è fatto così
Ho scelto di non usare un ORM. Le query sono semplice SQL parametrizzato tramite mysql2, e Next.js viene compilato in modalità standalone in un unico server.js. Il motivo è l’hosting: il motore WASM di Prisma esauriva la memoria su un hosting condiviso cPanel, mentre un pacchetto standalone gira su server economici. Gli utenti usano le proprie chiavi AI, quindi la piattaforma non paga le loro chiamate all’AI.


