← Tutte le idee Giochi e hobby

Wonderhop

Un gioco quotidiano: indovina cosa risponde la maggior parte della gente

Cosa fa

Ogni giorno una domanda: devi indovinare la risposta più comune, oppure una risposta che nessuno ha dato. Un gioco giornaliero, come Wordle, che fa tornare la gente ogni giorno.

Come guadagna

Presentato su Hacker News dal suo creatore, che non dichiara incassi. Idee nostre per guadagnare con un progetto simile: pubblicità leggera e un abbonamento per giocare le partite passate.

Rendilo tuo

  • Versione italiana con domande sulla nostra cultura: "il primo piatto che ti viene in mente".
  • Classifiche tra amici e condivisione del risultato a quadratini, come Wordle.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Cosa Pensano Tutti": un gioco giornaliero come Wordle: ogni giorno una domanda ("Un frutto che si mangia d'estate?"); devi indovinare la risposta più comune tra tutti i giocatori, oppure trovarne una che nessuno ha dato. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. La domanda di oggi con il campo per rispondere
2. Risultato: la tua risposta in classifica, le 10 più date, quanti l'hanno detta
3. Archivio delle domande passate (Pro)
4. Statistiche personali e serie di giorni
5. Condivisione del risultato con le emoji

Stile: giocoso e pulito: sfondo bianco, giallo #FACC15, viola #7C3AED, carattere "Space Grotesk", tutto in una schermata, animazione delle barre dei risultati. 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:
- "domande": testo, giorno, modalità (più comune o unica)
- "risposte": domanda, risposta normalizzata, chi ha risposto (o un identificativo anonimo), data

Regole di sicurezza obbligatorie:
- si risponde una volta al giorno per domanda
- le risposte degli altri si vedono solo dopo aver risposto
- le risposte offensive vengono filtrate e non compaiono nelle classifiche

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. Risposte confrontate tra tutti

Ogni giorno a mezzanotte compare una nuova domanda uguale per tutti. Il giocatore scrive una risposta breve; la risposta viene "normalizzata" (minuscole, senza accenti, al singolare quando possibile, sinonimi comuni uniti: "anguria" e "cocomero" contano come una) così che le risposte uguali si sommino (codice nei Dettagli tecnici).

Modalità "più comune": vinci tanti punti quante persone hanno dato la tua stessa risposta. Modalità "unica": vinci se nessun altro l'ha data. Il risultato completo si vede la sera, ma subito dopo aver risposto si vede la classifica provvisoria.

Si gioca senza account (un identificativo anonimo nel browser); con l'account si conservano statistiche e serie.

4. Condivisione e statistiche

Il pulsante "Condividi" copia un testo con le emoji (es. "Cosa Pensano Tutti #142 🟨🟨🟨⬜ 3° risposta più data") senza svelare la risposta.

Statistiche: giorni giocati, serie, media dei punti. Pubblicità discreta sotto il risultato, mai sopra la domanda, dopo il consenso ai cookie.

5. Pagamenti con Stripe

Aggiungi un pagamento singolo di 2,99 € una volta sola. Il pagamento toglie la pubblicità e sblocca l'archivio di tutte le domande passate.

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. Normalizzazione: rispondi "Cocomero", "cocomeri" e "ANGURIA" da tre browser: devono contare come la stessa risposta.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Risposte uguali che si sommano

Ogni risposta viene ripulita (minuscole, senza accenti, sinonimi) prima di essere contata, e ognuno risponde una sola volta per domanda.

create extension if not exists unaccent;

create table sinonimi (
  parola text primary key,           -- es. 'anguria'
  forma text not null                -- es. 'cocomero'
);

create table risposte (
  domanda_id int not null,
  giocatore text not null,           -- id utente o identificativo anonimo del browser
  risposta text not null,
  normalizzata text not null,
  primary key (domanda_id, giocatore)
);
alter table risposte enable row level security;

create function normalizza(testo text) returns text
language sql immutable as $
  select coalesce(s.forma, base) from (
    select regexp_replace(lower(unaccent(trim(testo))), '[^a-z0-9 ]', '', 'g') as base
  ) b left join sinonimi s on s.parola = b.base;
$;

-- Salva la risposta e restituisce quante persone hanno dato la stessa
create function rispondi(domanda int, chi text, testo text) returns int
language plpgsql security definer set search_path = public as $
declare n text := normalizza(testo); quanti int;
begin
  insert into risposte values (domanda, chi, testo, n);
  select count(*) into quanti from risposte where domanda_id = domanda and normalizzata = n;
  return quanti;
end $;
grant execute on function rispondi(int, text, text) to anon, authenticated;

-- Le 10 risposte più date (solo per chi ha già risposto: controllato nella Edge Function)
select normalizzata, count(*) as volte
from risposte where domanda_id = 142
group by normalizzata order by volte desc limit 10;

Pezzi comuni a tutti i progetti

Glossario

Normalizzare
Rendere uguali parole scritte in modi diversi (maiuscole, accenti, plurali) per poterle contare insieme.