Analisi tecnica e piano di sviluppo
Il documento risponde ai diciotto punti richiesti prima dello sviluppo: architettura, schema dati, struttura dell'agente, memoria, sicurezza, milestone e costi. Il prototipo collegato mostra il flusso principale già navigabile.
Un ambiente unico dove stanno clienti, contenuti, task, calendario e note dei meeting, e sopra ci lavora un agente che quei dati li legge davvero e può modificarli con la tua conferma. Non una chat affiancata a un gestionale: gli stessi dati, un solo posto.
La differenza pratica sta nel contesto. Quando chiedi cinque idee per un cliente, il sistema recupera il suo Brand Profile, i contenuti già usciti, le decisioni prese in riunione e le tue correzioni passate, poi scrive. È questo che separa un output usabile da uno generico, e vale più di qualsiasi elenco di funzionalità.
Il flusso cliente → contesto → richiesta → contenuto → task → calendario è già navigabile nel prototipo con dati di esempio: dashboard, assistente con i tool a vista, scheda cliente completa di Brand Profile e memoria.
Hai chiesto che le tue idee vengano messe in discussione dove esiste una soluzione migliore. Queste sette incidono su tempi, costi o su quanto il prodotto sarà davvero usabile.
Instagram, Facebook, TikTok e LinkedIn danno accesso alle metriche solo dopo verifica aziendale e revisione dell'app: settimane di attesa fuori dal nostro controllo, e per alcune metriche il dato non è comunque esposto. Nell'MVP i numeri si inseriscono a mano o via CSV — poche decine di righe al mese — e l'AI li interpreta lo stesso. Le integrazioni si aprono in fase 2, quando il prodotto è già in uso e vale la pena affrontare la burocrazia.
Leggere in automatico i profili social dei concorrenti significa fare scraping contro i termini d'uso delle piattaforme: si rompe a ogni modifica del sito e ti espone. È anche la funzione che genera più aspettative e che le delude prima. Quello che regge: analisi del sito del competitor, ricerca web con fonte e data, e i dati che inserisci tu. L'output — posizionamento, gap, opportunità, idee di differenziazione — resta lo stesso.
Il rischio numero uno è che il sistema funzioni e produca copy mediocre, perché i Brand Profile restano mezzi vuoti: nessuno compila trenta campi per cliente. Serve un onboarding guidato in cui l'AI ti intervista, legge il sito del cliente e propone lei una prima versione del profilo che tu correggi. Sono tre giorni di lavoro in più e sono la differenza tra usarlo ogni giorno e abbandonarlo dopo due settimane.
Lo scrivi tu al punto 24 e confermo. Nell'MVP il sistema registra le differenze tra quello che genera e quello che approvi, ma non ne ricava mai una regola da solo: dopo che lo stesso schema si ripete più volte te lo mostra e chiede se salvarlo. Una regola sbagliata promossa in automatico avvelena tutti i contenuti successivi, ed è un danno difficile da vedere finché non è grosso.
Tempo stimato e tempo effettivo servono per capire redditività e sovraccarico, ma se vanno inseriti a mano dopo ogni attività i dati saranno incompleti e i calcoli che ci costruisci sopra saranno sbagliati. Nell'MVP: un timer che parte e si ferma dal task con un clic, più la stima proposta dall'AI in base a quanto ci hai messo le volte precedenti. Il resto della reportistica sui tempi arriva quando ci sono numeri veri.
Registrare le call è un cantiere a sé — permessi, formati, costi di trascrizione, e in Italia il consenso dei partecipanti. Il valore vero sta dopo: trasformare il testo in sintesi, decisioni, task e scadenze. Nell'MVP incolli la trascrizione da quello che già usi, o carichi un file audio che viene trascritto; da lì in poi funziona tutto come nel brief.
Isolamento dei dati per workspace e ruoli vanno messi dal primo giorno: costano poco adesso e sono una riscrittura completa se aggiunti dopo. Tutto il resto — fatturazione, piani, gestione di più utenti, portale cliente — non va toccato finché non c'è un secondo cliente vero. Ogni ora spesa lì è un'ora tolta a ciò che userai domani mattina.
Non impongo lo stack, lo motivo. Questa combinazione l'ho già in produzione su altri gestionali: significa meno tempo di setup, trappole già conosciute e un percorso di deploy collaudato.
| Livello | Scelta | Perché |
|---|---|---|
| Interfaccia | Next.js 16 + React 19 + TypeScript | Una sola base di codice per pagine e API, responsive nativo, tipi condivisi tra client e server: meno errori a runtime. |
| Dati | PostgreSQL gestito (Supabase) | Relazionale come chiedi, più ricerca semantica sugli stessi dati senza aggiungere un secondo database. Include autenticazione, storage file e isolamento per riga. |
| Ricerca semantica | pgvector | Estensione di PostgreSQL: gli embedding stanno accanto ai record. Un database di meno da gestire, pagare e tenere sincronizzato. |
| Strato AI | Vercel AI SDK | Interfaccia unica verso più fornitori: cambiare modello è una riga di configurazione, non una riscrittura. Copre il punto 27 senza costruire un'astrazione su misura. |
| Pubblicazione social | Postiz (già attivo) | Gestisce già le autorizzazioni verso tredici piattaforme. Ci si integra via API invece di rifare da zero il pezzo più costoso e burocratico della fase 3. |
| Infrastruttura | VPS dedicato, deploy da git | Server già operativo con altre applicazioni: certificati automatici, un container per app, backup del database in un comando. Costo marginale vicino a zero. |
Postiz cambia la fase 3 in modo sostanziale. Le autorizzazioni verso Meta, TikTok e LinkedIn sono la parte più lenta di questo tipo di progetti: essendo già risolte, la pubblicazione programmata diventa una chiamata all'API invece di due mesi di pratiche.
Come chiedi al punto 25, niente prompt unico che contiene tutto. Ogni richiesta viene composta da blocchi separati, ciascuno con il suo budget di spazio, e solo quelli pertinenti finiscono nel contesto.
I primi due blocchi non cambiano quasi mai: vengono messi in cache dal fornitore e a ogni richiesta successiva costano un decimo. È il motivo per cui la stima di spesa più avanti resta bassa nonostante l'uso quotidiano.
| Tipo di lavoro | Modello | Perché |
|---|---|---|
| Conversazione, copy, idee, pianificazione | Sonnet 5 | Il miglior rapporto tra qualità e costo per il novanta per cento del lavoro quotidiano. |
| Piano editoriale, report mensile, analisi competitor | Opus 5 | Poche richieste al mese ma complesse: qui la qualità del ragionamento si vede e il costo resta marginale. |
| Classificazioni, estrazioni, riassunti brevi | Haiku 4.5 | Compiti meccanici ad alto volume: cinque volte più economico e più veloce. |
Lo strato di astrazione registra per ogni chiamata modello, token in entrata e in uscita, costo, latenza ed esito. Senza questa contabilità il punto 28 resta un'intenzione: con essa vedi la spesa per cliente e per tipo di attività, e puoi spostare un compito su un modello più economico quando i dati dicono che regge.
La memoria è il punto in cui questi progetti riescono o falliscono, ed è anche quello dove il brief è più esigente. Non salviamo cronologie di chat: ogni voce è un record strutturato.
| Campo | Valori | A cosa serve |
|---|---|---|
| Ambito | utente · cliente · progetto | Determina quando la voce è pertinente |
| Genere | fatto · decisione · preferenza · procedura · nota | Un fatto e una preferenza pesano diversamente nella scrittura |
| Durata | permanente · con scadenza | «Chiusi ad agosto» muore da solo, «niente sconti» no |
| Affidabilità | confermata · dedotta · proposta | Solo le confermate influenzano l'output senza avviso |
| Origine | meeting · chat · manuale · dedotta | Ogni voce si può risalire alla fonte e correggere |
Prima un filtro rigido — solo le voci di quel cliente e ambito — poi ricerca combinata: per significato tramite embedding e per parole esatte tramite indice testuale, perché "Reel" o un nome proprio devono essere trovati anche quando la somiglianza semantica non aiuta. I due elenchi vengono uniti, riordinati per pertinenza e ne arrivano al modello solo i primi.
L'agente non tocca il database direttamente: passa da funzioni dichiarate, ognuna con il suo livello di autorizzazione. È così che il punto 30 diventa un meccanismo invece di un'intenzione.
get_client()search_clients()get_brand_profile()search_content()get_tasks()search_meetings()search_memory()get_analytics()search_web()create_content()update_content()create_task()update_task()create_meeting_note()update_brand_profile()save_memory()create_report()schedule_content()delete_content()delete_client()publish_content()send_communication()Le operazioni multiple si confermano in blocco, non una per una: «creo questi cinque task?» con l'elenco davanti. Se ogni azione richiedesse un clic separato smetteresti di usarlo entro una settimana. Ogni chiamata resta nel registro con richiesta, esito ed eventuale annullamento.
Le entità che hai elencato al punto 26, con le relazioni che contano. Ventidue tabelle: abbastanza per reggere le fasi successive, non tante da rallentare la prima.
Identità
UserWorkspaceMembershipOgni riga di ogni tabella appartiene a un workspace. È la base del multi-cliente e del futuro SaaS.
Cliente
ClientBrandProfileBrandPreferenceBrandExampleCompetitorIl profilo è separato dall'anagrafica perché cambia con ritmo diverso e va versionato.
Lavoro
ProjectContentContentVersionContentBriefTaskTimeEntryOgni contenuto conserva le sue versioni: è da lì che nasce il confronto tra generato e approvato.
Conoscenza
MemoryMeetingMeetingNoteAssetTagMemory e Asset portano un vettore per la ricerca semantica.
Misura
PerformanceMetricReportCalendarEventLe metriche sono separate dal contenuto: entrano a mano oggi, da API domani, senza toccare il resto.
Contabilità AI
AIRequestAIResponseUsageModello, token, costo, latenza ed esito per ogni chiamata. Il punto 28 vive qui.
Nel sistema finiscono dati commerciali di aziende terze: strategie, risultati, decisioni interne. Verso i tuoi clienti sei responsabile del trattamento e ti serve poterlo dimostrare.
| Requisito | Come è risolto |
|---|---|
| Accesso | Autenticazione con sessioni firmate e secondo fattore opzionale. Nessuna password gestita da noi in chiaro. |
| Isolamento | Regole a livello di riga nel database: una query senza il workspace giusto non restituisce nulla, anche in caso di errore applicativo. |
| File | Storage privato con collegamenti temporanei firmati. Nessun file raggiungibile con l'URL diretto. |
| Chiavi | Solo in variabili d'ambiente sul server, mai nel codice e mai nel browser. Rotazione documentata. |
| Dati e modelli | I fornitori usati non addestrano sui dati inviati via API. Vale la pena scriverlo nel contratto con i tuoi clienti: è un argomento di vendita, non solo un adempimento. |
| Residenza | Database e file in Unione Europea. Le chiamate ai modelli escono dall'UE: va indicato nell'informativa. |
| Backup | Giornalieri con conservazione a sette giorni, più esportazione completa su richiesta. Un cliente che se ne va si porta via i suoi dati in un file. |
| Tracciabilità | Registro di chi ha fatto cosa e quando, incluse le azioni dell'agente. Serve per il GDPR e serve a te quando qualcosa non torna. |
| Limiti | Tetto di richieste per utente e per ora, e tetto di spesa AI mensile con avviso. Una richiesta anomala non può svuotare il budget. |
| Rischio | Peso | Contromisura |
|---|---|---|
| Output generico perché i Brand Profile restano vuoti | Alto | Onboarding guidato con intervista AI e prima bozza del profilo generata dal sito del cliente. |
| L'AI inventa numeri nei report | Alto | I dati arrivano solo dai tool. Se un dato manca il modello deve dirlo, non stimarlo: verificato in collaudo con casi appositi. |
| Spesa AI fuori controllo | Medio | Tetto mensile, contabilità per chiamata, modelli economici sui compiti semplici, cache sui blocchi fissi. |
| Lentezza percepita nelle richieste complesse | Medio | Risposta in streaming e tool eseguiti in parallelo: vedi il lavoro mentre avviene invece di fissare un caricamento. |
| Le API social cambiano o vengono negate | Medio | Fase 2 isolata dietro Postiz. Se una piattaforma chiude, si perde una funzione, non il prodotto. |
| Dipendenza da un solo fornitore AI | Basso | Strato di astrazione dal primo giorno: cambiare modello è configurazione. |
| Non lo usi tutti i giorni | Il vero rischio | Il collaudo si fa su due settimane di lavoro reale, non su casi di prova. La misura è quante volte apri l'app senza doverti ricordare di farlo. |
I tredici punti che hai elencato, con due aggiunte che nascono dalle criticità: onboarding guidato del Brand Profile e timer sui task. Fuori resta tutto ciò che non serve al flusso quotidiano.
Dentro
Fuori, e perché
Nove settimane, con una consegna visibile ogni due. Non ti chiedo di aspettare due mesi per vedere qualcosa: dalla terza settimana lo puoi aprire e usare su un cliente vero.
Fondamenta
Accesso, workspace, schema dati, deploy in linea
→ Entri e vedi l'app vuota ma vera
Clienti e profili
Anagrafica, Brand Profile, onboarding guidato
→ Carichi i tuoi clienti reali
Agente e tool
Composizione del contesto, tool in lettura, conferme
→ Fai domande e ottieni risposte sui tuoi dati
Memoria
Struttura, ricerca combinata, conferme di salvataggio
→ Ricorda le decisioni tra una sessione e l'altra
Contenuti
Stati, versioni, copywriting, idee, piano editoriale
→ Primo contenuto che nasce dall'AI ed esce davvero
Organizzazione
Task, timer, calendario, pianificazione giornata
→ Sostituisce quello che usi oggi per organizzarti
Meeting e ricerca
Sintesi, decisioni, task automatici, ricerca web
→ Il flusso completo funziona da capo a fondo
Consolidamento
Sicurezza, prestazioni, collaudo sul campo, messa in linea
→ Lo usi tutti i giorni
Le fasi che hai elencato al punto 36 restano tutte, distribuite: requisiti e architettura sono questo documento, il prototipo è già online, l'MVP sono le nove settimane, collaudo e messa in linea stanno nell'ultima, l'ottimizzazione entra nel canone.
Comprende analisi, sviluppo, collaudo, messa in linea e due settimane di correzioni dopo la consegna. Pagamento a milestone: trenta per cento all'avvio, trenta alla settimana quattro, quaranta alla consegna. Fuori IVA.
| Voce | Costo | Nota |
|---|---|---|
| Server e dominio | ~5 € | Quota su infrastruttura già attiva |
| Database gestito, backup inclusi | ~23 € | Piano con backup giornalieri e ripristino |
| Ricerca web | 5–15 € | A consumo, dipende da quanto la usi |
| Modelli AI | 40–70 € | Dettaglio qui sotto |
| Totale tecnico | 73–113 € | Costo vivo, senza margine |
Copre tutte le voci sopra fino a un consumo AI di 80 € al mese, più correzioni, aggiornamenti dei modelli quando escono versioni migliori o più economiche, e backup controllati. Oltre gli 80 € il consumo si ribalta a costo puro, con avviso prima di superare la soglia. Senza canone gestisci tu account e chiavi e paghi i fornitori direttamente.
Ipotesi: uso quotidiano intenso di una persona con cinque-dieci clienti. Quaranta richieste al giorno all'assistente, venticinque lavorazioni pesanti al mese tra piani editoriali e report, più le classificazioni automatiche di sfondo. Prezzi di listino correnti, senza sconti introduttivi.
| Attività | Modello | Volume mensile | Costo |
|---|---|---|---|
| Assistente quotidiano | Sonnet 5 | 9,6 M in · 1,8 M out | ≈ 40 $ |
| Piani, report, analisi | Opus 5 | 0,6 M in · 0,1 M out | ≈ 6 $ |
| Classificazioni e estrazioni | Haiku 4.5 | 0,9 M in · 0,2 M out | ≈ 2 $ |
| Totale | ≈ 48 $ · 44 € |
La cache sui blocchi fissi del contesto — istruzioni e profilo utente — vale circa il quaranta per cento del costo di ingresso: senza, la stessa attività costerebbe intorno ai sessanta euro. È il motivo per cui l'architettura del punto 25 non è solo eleganza ma risparmio misurabile.
| Fase | Contenuto | Quando ha senso |
|---|---|---|
| 2 — Dati | Instagram, Facebook, TikTok, LinkedIn, YouTube. Metriche automatiche, monitoraggio competitor e tendenze. | Dopo due mesi d'uso, quando sai quali metriche guardi davvero |
| 3 — Automazione | Pubblicazione programmata via Postiz, report automatici, Gmail, Google Calendar e Drive, portale cliente. | Quando il flusso manuale è consolidato e vale la pena automatizzarlo |
| 4 — Impresa | Marginalità per cliente, fatturazione, più utenti, eventuale apertura come prodotto. | Quando c'è un secondo utente che paga |
Ogni fase si preventiva quando la precedente è in uso. Preventivarle adesso significa preventivare funzioni che deciderai di non volere, il che non conviene a nessuno dei due.
Apri il prototipo e prova il percorso: dashboard, poi l'assistente con le tre domande di esempio, poi la scheda di un cliente. Serve a capire se il modo in cui è organizzato corrisponde a come lavori davvero — e quello è l'unico criterio che conta, visto che il progetto vale solo se lo apri tutte le mattine.
Se le sette criticità reggono e i tempi vanno bene, si parte dalla settimana uno. Se su qualcuna la pensi diversamente, ne parliamo prima di scrivere codice: è esattamente il motivo per cui questo documento viene prima.