← Tutte le idee Sport e benessere

Scanner dell'acqua (Oasis, H2OScore)

Fotografi l'etichetta dell'acqua e scopri cosa c'è dentro, spiegato semplice

Cosa fa

App che danno un punteggio alle acque in bottiglia leggendo l'etichetta: residuo fisso, sodio, nitrati, calcio. Sono cresciute con video su TikTok in cui il fondatore "giudica" le marche d'acqua.

Come guadagna

Abbonamento Pro. Secondo una stima di Sensor Tower riportata da Social Growth Engineers, H2OScore incassa circa 30.000 $; è una stima esterna, non un dato verificato. I video del genere hanno fatto decine di milioni di visualizzazioni.

Rendilo tuo

  • L'Italia è il paese europeo che beve più acqua in bottiglia: centinaia di marche da confrontare.
  • Acqua di casa: i dati del proprio comune pubblicati dai gestori.
  • Acque adatte ai neonati o per chi deve stare attento al sodio.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Acqua Chiara": un'app che legge l'etichetta delle acque minerali e spiega in modo semplice cosa contengono, con un punteggio per le esigenze della persona (neonati, poco sodio, sportivi). Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con il confronto tra marche famose e il prezzo
2. Scanner: foto dell'etichetta o ricerca per marca
3. Scheda dell'acqua: valori spiegati, punteggio, per chi è adatta
4. Confronto tra due acque
5. Classifiche per esigenza (neonati, poco sodio, ricca di calcio)

Stile: fresco e limpido: sfondo bianco, azzurro acqua #0EA5E9, blu #1E40AF, carattere "Inter", gocce e onde come motivo grafico. 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:
- "acque": marca, sorgente, residuo fisso, pH, sodio, calcio, magnesio, nitrati, fluoro, data dell'analisi, foto dell'etichetta
- "scansioni": utente, acqua, data
- "preferenze": esigenza scelta dall'utente

Regole di sicurezza obbligatorie:
- l'archivio delle acque è pubblico, lo aggiornano solo il server e la redazione
- ogni utente vede solo le sue scansioni
- l'abbonamento 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. Dall'etichetta al punteggio

L'utente fotografa la parte dell'etichetta con l'analisi chimica. Claude legge i valori (residuo fisso, sodio, calcio, magnesio, nitrati, fluoro, pH) e la data dell'analisi, restituendoli in JSON. Se l'acqua è già nell'archivio si confrontano i valori; se è nuova si aggiunge.

Il punteggio si calcola con regole trasparenti e uguali per tutti (codice nei Dettagli tecnici), in base all'esigenza scelta: per i neonati contano nitrati e sodio bassi, per chi ha la pressione alta il sodio, per gli sportivi calcio e magnesio. Ogni valore ha la spiegazione in una frase.

Niente "acque cattive": tutte le acque in vendita rispettano i limiti di legge. Il punteggio dice quanto è adatta a un'esigenza, e lo si scrive chiaramente.

4. Confronti e classifiche

Confronto affiancato tra due acque con i valori evidenziati. Classifiche per esigenza tra le acque nell'archivio.

Per i video sui social (il canale che ha fatto crescere Oasis e H2OScore): un'immagine verticale del confronto da condividere, con i valori grandi e leggibili.

5. Pagamenti con Stripe

Aggiungi un abbonamento a 2,49 € al mese o 14,99 € all'anno. Gratis l'utente ha: 3 scansioni e le classifiche base. Con il piano Pro sblocca: scansioni illimitate, confronti, classifiche per esigenza e acqua del rubinetto del proprio comune.

A pagamento riuscito il webhook porta l'utente al piano Pro; se l'abbonamento viene disdetto o non rinnovato lo riporta al piano gratuito.

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. Lettura: fotografa 5 etichette diverse e controlla a mano che i valori letti dall'AI siano identici a quelli stampati.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Punteggio per esigenza

Regole semplici e trasparenti: per ogni esigenza contano valori diversi. Le soglie sono indicative (per i neonati si usano i limiti per le acque "adatte all'alimentazione dei neonati").

type Acqua = { residuoFisso: number; sodio: number; calcio: number; magnesio: number; nitrati: number };
type Esigenza = "neonati" | "poco_sodio" | "sportivi" | "generale";

export function punteggio(a: Acqua, e: Esigenza) {
  let punti = 70;
  const note: string[] = [];
  if (e === "neonati") {
    if (a.nitrati <= 10) { punti += 15; note.push("Nitrati molto bassi: adatta ai neonati"); }
    else { punti -= 30; note.push("Nitrati oltre 10 mg/l: meglio un'altra acqua per i neonati"); }
    if (a.sodio <= 20) punti += 10; else { punti -= 15; note.push("Sodio un po' alto per un neonato"); }
    if (a.residuoFisso > 500) { punti -= 10; note.push("Molto mineralizzata"); }
  }
  if (e === "poco_sodio") {
    if (a.sodio < 20) { punti += 25; note.push("Iposodica: meno di 20 mg/l di sodio"); }
    else punti -= Math.min(40, a.sodio / 5);
  }
  if (e === "sportivi") {
    punti += Math.min(15, a.calcio / 20) + Math.min(10, a.magnesio / 5);
    if (a.calcio > 150) note.push("Ricca di calcio");
  }
  if (e === "generale" && a.residuoFisso < 50) note.push("Minimamente mineralizzata: leggera");
  return { punti: Math.max(0, Math.min(100, Math.round(punti))), note };
}

Istruzioni per l'AI: leggi-etichetta

Le istruzioni fisse che la Edge Function "leggi-etichetta" 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".

Leggi l'analisi chimica sull'etichetta di un'acqua minerale nella foto. Riporta solo i valori stampati, senza inventare: se un valore non c'è metti null. Unità: mg/l, tranne pH. Rispondi solo con JSON: {"marca", "sorgente", "data_analisi", "residuo_fisso", "ph", "sodio", "calcio", "magnesio", "nitrati", "fluoro"}.

Pezzi comuni a tutti i progetti

Glossario

Residuo fisso
La quantità di sali minerali nell'acqua: sotto 50 mg/l è "minimamente mineralizzata", leggera.
Acqua iposodica
Un'acqua con pochissimo sodio, adatta a chi deve limitarlo.