← Tutte le idee Intelligenza artificiale

GenPPT

Scrivi l'argomento, l'AI prepara la presentazione

Incasso mensile: 7900 USD (fonte indicata nella scheda)

Cosa fa

L'utente scrive l'argomento o incolla un testo, e il servizio crea una presentazione completa: titoli, punti elenco, immagini e grafica coordinata. Si scarica in PowerPoint o PDF.

Come guadagna

Qualche presentazione gratis, poi abbonamento o pacchetti di crediti.

Rendilo tuo

  • Pensato per gli studenti italiani: presentazioni per esami e tesine, con la bibliografia.
  • Oppure per le aziende: presentazione aziendale con logo e colori già impostati.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Slide Pronte": crea una presentazione completa da un argomento o da un testo incollato, da scaricare in PowerPoint e modificare. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con esempi di presentazioni e prezzi
2. Registrazione e accesso
3. Nuova presentazione: argomento o testo, numero di slide, pubblico, tema grafico
4. Editor: elenco delle slide a sinistra, slide grande a destra
5. Le mie presentazioni

Stile: pulito e professionale: sfondo grigio chiaro #F8FAFC, blu #1E40AF, accento arancio #F59E0B, carattere "Inter", anteprime delle slide in formato 16:9. Nessuna immagine generica di stock.

Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.

2. Database, account e sicurezza

Collega il progetto a Supabase e attiva la registrazione con email e password.

Crea queste tabelle:
- "presentazioni": titolo, pubblico, tema, slide in JSON (titolo, punti, note per chi parla), collegate all'utente

Regole di sicurezza obbligatorie:
- ogni utente vede e modifica solo le sue presentazioni
- i crediti non si modificano dal browser

Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.

3. Dal testo alle slide

Nella nuova presentazione l'utente scrive un argomento o incolla un testo (fino a 20.000 caratteri), sceglie il numero di slide (5–20), il pubblico (colleghi, clienti, scuola, investitori) e uno di 8 temi grafici.

La Edge Function "slide" (un credito) chiede a Claude un JSON con le slide: per ognuna titolo, massimo 5 punti brevi, un'idea di immagine o grafico, e le note per chi parla. Se c'è un testo, Claude usa solo le informazioni contenute nel testo.

Nell'editor l'utente modifica titoli e punti, sposta le slide trascinandole e le aggiunge o toglie. Pulsante "Rifai questa slide" con una richiesta a parole.

4. Scaricare in PowerPoint

Il pulsante "Scarica PowerPoint" crea il file .pptx direttamente nel browser con la libreria pptxgenjs (codice nei Dettagli tecnici): stesso tema, titoli, punti elenco e note per chi parla, tutto modificabile in PowerPoint, Keynote o Google Slides.

Aggiungi anche "Scarica PDF" e un link di sola lettura per mostrare la presentazione a schermo intero da qualsiasi dispositivo.

5. Pagamenti con Stripe

Aggiungi pacchetti di crediti: 10 presentazioni a 7,99 €, 40 presentazioni a 19,99 €. Ogni nuovo utente riceve 2 crediti gratis. Ogni presentazione creata costa un credito; modifiche e download sono gratis. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.

A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.

Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.

6. Controlli specifici di questo progetto

Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. File: scarica una presentazione e aprila in PowerPoint e in Google Slides: i testi devono essere modificabili e nulla deve uscire dai bordi.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Tabella delle presentazioni

Ogni presentazione con le sue slide in formato JSON.

create table presentazioni (
  id uuid primary key default gen_random_uuid(),
  utente_id uuid not null references auth.users(id) on delete cascade,
  titolo text not null,
  pubblico text not null default 'colleghi',
  tema text not null default 'chiaro',
  slide jsonb not null default '[]',   -- [{ titolo, punti: [], immagine, note }]
  link_lettura uuid unique default gen_random_uuid(),
  creato_il timestamptz not null default now()
);

alter table presentazioni enable row level security;
create policy "le mie righe" on presentazioni
  for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);

Creare il file PowerPoint

Trasforma le slide in un vero file .pptx nel browser, con la libreria pptxgenjs. I colori si scrivono senza il simbolo #.

import PptxGenJS from "pptxgenjs";

type Slide = { titolo: string; punti: string[]; note?: string };
type Tema = { sfondo: string; titolo: string; testo: string; carattere: string };

export async function scaricaPowerPoint(nome: string, slide: Slide[], tema: Tema) {
  const pptx = new PptxGenJS();
  pptx.layout = "LAYOUT_WIDE";                         // 16:9

  for (const s of slide) {
    const pagina = pptx.addSlide();
    pagina.background = { color: tema.sfondo };       // es. "FFFFFF"
    pagina.addText(s.titolo, {
      x: 0.6, y: 0.4, w: 12, h: 1,
      fontSize: 32, bold: true, color: tema.titolo, fontFace: tema.carattere,
    });
    pagina.addText(
      s.punti.map((p) => ({ text: p, options: { bullet: true, breakLine: true } })),
      { x: 0.6, y: 1.6, w: 12, h: 5, fontSize: 20, color: tema.testo, fontFace: tema.carattere, valign: "top" },
    );
    if (s.note) pagina.addNotes(s.note);              // note per chi parla
  }
  await pptx.writeFile({ fileName: nome + ".pptx" });
}

Istruzioni per l'AI: slide

Le istruzioni fisse che la Edge Function "slide" dà a Claude, che risponde in JSON. Il resto della funzione (accesso, crediti, rimborso se l'AI rifiuta) è uguale per tutti i progetti: è nella guida "Chiamare l'AI dal server".

Crei presentazioni chiare in italiano. Ricevi argomento o testo, numero di slide e pubblico. Se c'è un testo, usa solo le sue informazioni. Ogni slide: titolo di massimo 8 parole, massimo 5 punti di massimo 12 parole, un'idea di immagine o grafico, note per chi parla di 2-4 frasi. Prima slide di titolo, ultima di riepilogo. Rispondi solo con JSON: {"slide": [{"titolo", "punti": [], "immagine", "note"}]}.

Pezzi comuni a tutti i progetti

Glossario

JSONB
Un tipo di colonna che contiene dati strutturati flessibili, come un piccolo documento.