← Tutte le idee Strumenti online

App scanner e editor PDF

Scansiona, modifica e firma documenti PDF dal telefono

Incasso mensile: 9 USD (fonte indicata nella scheda)

Cosa fa

App per iPhone per scansionare documenti, modificarli, firmarli e condividerli. Venduta per circa 1.000 $: un esempio di mercato molto affollato.

Come guadagna

Incasso annuo dichiarato di circa 100 $ nell'annuncio di vendita su Microns, che verifica i dati, segno che in un mercato affollato è difficile emergere. Il nome del progetto non è pubblico.

Rendilo tuo

  • Meglio una nicchia precisa: scansione di ricevute per il 730, documenti per la pratica del mutuo.
  • Prima di costruire, cerca quanti concorrenti ci sono: qui sono tantissimi.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Scansiona e Firma": scansiona documenti con la fotocamera del telefono, li unisce in un PDF, permette di firmarli e di condividerli, tutto nel browser senza caricare i documenti su un server. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con le funzioni e il prezzo
2. Scansione: fotocamera con ritaglio e filtro "documento"
3. Pagine del documento: riordina, ruota, elimina
4. Firma: disegna la firma e posizionala sulla pagina
5. Documenti recenti salvati nel telefono

Stile: semplice e da ufficio: sfondo grigio chiaro #F3F4F6, blu #2563EB, nero #111827, carattere "Inter", pulsanti grandi in basso come in un'app. 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:
- "profili": solo piano (gratis o completo), collegato all'utente. I documenti NON si salvano sul server

Regole di sicurezza obbligatorie:
- i documenti restano nel telefono dell'utente
- il piano non si modifica 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. Scansione e PDF

La scansione usa la fotocamera posteriore: l'utente scatta, poi trascina i 4 angoli per ritagliare il foglio. Il filtro "documento" rende lo sfondo bianco e il testo nero con un aumento di contrasto. Si possono aggiungere più pagine, riordinarle trascinando, ruotarle.

Il PDF si crea nel browser con la libreria pdf-lib (codice nei Dettagli tecnici), in formato A4, con un peso ridotto per l'invio via email. I documenti recenti restano salvati nel telefono (IndexedDB), mai sul server.

Si possono anche aprire PDF esistenti per aggiungere pagine scansionate o firmarli.

4. Firma e condivisione

Pagina firma: si disegna la firma con il dito su un riquadro (salvabile nel telefono per le volte successive), poi la si posiziona e ridimensiona sulla pagina. Si aggiungono anche data e testo.

Condivisione con il menu del telefono (WhatsApp, email, Drive) tramite la Web Share API. Ricorda che questa è una firma semplice: per i contratti che richiedono la firma digitale qualificata servono servizi certificati.

5. Pagamenti con Stripe

Aggiungi un pagamento singolo di 4,99 € una volta sola. Il pagamento toglie il limite di 3 pagine per documento e la scritta in fondo al PDF, e sblocca la firma.

A pagamento riuscito il webhook imposta "piano" a "pro" nella tabella "profili", sulla riga dell'utente indicata in client_reference_id.

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. Privacy: controlla nella scheda Rete del browser che durante la scansione, la firma e la creazione del PDF non venga inviato nessun file.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Dalle foto al PDF firmato

Crea un PDF A4 dalle pagine scansionate e aggiunge l'immagine della firma nella posizione scelta, tutto nel browser.

import { PDFDocument } from "pdf-lib";

const A4 = { larghezza: 595.28, altezza: 841.89 };   // punti tipografici

export async function creaPdf(
  pagine: Blob[],                                       // JPEG già ritagliati
  firma?: { immagine: Blob; pagina: number; x: number; y: number; larghezza: number },
): Promise<Blob> {
  const pdf = await PDFDocument.create();

  for (const foto of pagine) {
    const img = await pdf.embedJpg(await foto.arrayBuffer());
    const scala = Math.min(A4.larghezza / img.width, A4.altezza / img.height);
    const pagina = pdf.addPage([A4.larghezza, A4.altezza]);
    pagina.drawImage(img, {
      x: (A4.larghezza - img.width * scala) / 2,
      y: (A4.altezza - img.height * scala) / 2,
      width: img.width * scala,
      height: img.height * scala,
    });
  }

  if (firma) {
    const png = await pdf.embedPng(await firma.immagine.arrayBuffer());
    const altezza = (png.height / png.width) * firma.larghezza;
    pdf.getPage(firma.pagina).drawImage(png, { x: firma.x, y: firma.y, width: firma.larghezza, height: altezza });
  }

  const byte = await pdf.save();
  return new Blob([byte], { type: "application/pdf" });
}

// Condivisione con il menu del telefono
export async function condividi(pdf: Blob, nome: string) {
  const file = new File([pdf], nome + ".pdf", { type: "application/pdf" });
  if (navigator.canShare?.({ files: [file] })) await navigator.share({ files: [file], title: nome });
}

Pezzi comuni a tutti i progetti

Glossario

pdf-lib
Una libreria gratuita che crea e modifica PDF direttamente nel browser.
Firma digitale qualificata
La firma elettronica con valore legale pieno, rilasciata da enti certificati: diversa da una firma disegnata.