Torna ai lavori
Demo2026

ContentAI — Content ideation con Brand Memory

Un generatore che usa memoria di brand, output strutturato e tracking dei costi AI.

Demo

ContentAI — Content ideation con Brand Memory

AI pipeline
01

Sources

02

LLM filter

03

Digest

Ruolo

Product Designer & Full Stack Developer

Cliente

Progetto personale

Stato

Completato

Stack / proof

Brand Memory · idee strutturate · usage e costi

Obiettivo del progetto

I tool di generazione contenuti AI standard producono idee generiche perché mancano di contesto personale: l'utente deve ripetere ogni volta chi è, per chi scrive e con che tono. ContentAI nasce per risolvere questo problema con un approccio più prodotto: un generatore di idee che ricorda il brand di chi lo usa e rende visibile il costo reale di ogni generazione.

Problema iniziale

  • le idee generate "a freddo" sono generiche e richiedono sempre correzioni manuali di tono e contesto;
  • il posizionamento del creator (bio, audience, pillar di contenuto) va ripetuto ad ogni prompt;
  • l'output non strutturato richiede lavoro di editing prima di poter essere usato;
  • il costo reale delle chiamate AI (token, modello, spesa) è invisibile all'utente.

Soluzione implementata

Ho progettato e sviluppato un micro-SaaS con account reali, persistenza cloud e tracking economico integrato — non un semplice wrapper su un modello AI.

Funzionalità principali

  • Brand Memory persistente: profilo con bio, audience, tono, worldview, pillar di contenuto, storie e sample di scrittura, iniettato in ogni prompt di generazione.
  • Generazione strutturata: ogni idea torna come card con hook, angle, CTA, step di esecuzione, difficoltà, piattaforma e formato.
  • Autenticazione reale: Supabase Auth con magic link e Google OAuth.
  • Persistenza cloud multi-utente: Brand Memory, generazioni, idee, feedback e usage event salvati per utente.
  • Dashboard Usage & Costs: token, modello/provider, spesa stimata, costo per generazione e costo per idea.
  • Modalità di strategia: l'interfaccia espone modalità come fast/balanced/strategic invece dei nomi dei modelli, mappati lato server.

Architettura e stack tecnico

Frontend

  • Next.js 16 (App Router)
  • React 19
  • Tailwind CSS v4

Backend applicativo

  • API routes Next.js per generazione, profilo e usage
  • Adapter AI OpenRouter-first con fallback OpenAI
  • Parsing e validazione dell'output JSON strutturato

Data layer

  • Prisma come schema/migration tooling
  • PostgreSQL su Supabase con Row Level Security

Auth e sicurezza

  • Supabase Auth via @supabase/ssr (Google OAuth + magic link)
  • Row Level Security con policy auth.uid() su tutte le tabelle utente
  • API key esclusivamente lato server

Data model (alto livello)

Entità principali:

  • users
  • brand_profiles
  • generations
  • content_ideas
  • idea_feedback
  • usage_events

Le policy RLS scopano ogni riga all'utente proprietario tramite auth.uid().

Stato attuale

Il prodotto è considerato concluso come demo di portfolio: flusso di autenticazione, Brand Memory, generazione e dashboard costi sono tutti funzionanti in produzione. Restano margini di miglioramento su copertura test e affinamento SMTP per i magic link.

Cosa dimostra nel portfolio

  • product thinking oltre il semplice "wrapper AI": memoria di contesto e unit economics come feature di prodotto;
  • autenticazione e persistenza multi-utente sicura con RLS;
  • integrazione AI con provider abstraction, prompt engineering e parsing di output strutturato;
  • attenzione ai costi reali delle chiamate LLM, tracciati e mostrati all'utente.