← Tutte le idee Casa e famiglia

Debatium

Domande e sfide per conoscersi meglio in coppia

Incasso mensile: 15.051 USD (fonte indicata nella scheda)

Cosa fa

App francese per coppie: un gioco di conversazione con domande su tanti temi per parlare davvero e rafforzare il legame.

Come guadagna

Piano gratuito e Premium a 8,99 $ a settimana, quasi 2.300 abbonati, voto 4,6 su 5. Nessuna pubblicità nell'app. Incassi verificati con RevenueCat.

Rendilo tuo

  • Per coppie a distanza: una domanda al giorno a cui rispondere entrambi.
  • Prima del matrimonio: argomenti da affrontare (soldi, figli, famiglie).
  • Per famiglie: domande a tavola tra genitori e figli.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Noi Due": un gioco di conversazione per coppie: mazzi di domande per tema, risposte nascoste che si scoprono solo quando hanno risposto entrambi, e una domanda del giorno. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Presentazione
2. Collega il partner con un codice
3. Mazzi di domande per tema
4. Partita: domanda, risposta nascosta, confronto
5. Domanda del giorno e ricordi

Stile: intimo e caldo: sfondo #2A0F1F, rosa #F472B6, crema #FDE7D3, carattere "Fraunces", carte morbide. 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:
- "coppie": due utenti e codice d'invito
- "mazzi" e "domande": tema, testo, gratis o premium
- "risposte": coppia, domanda, utente, testo

Regole di sicurezza obbligatorie:
- solo i due partner vedono le risposte della coppia
- la risposta dell'altro resta nascosta finché non hai risposto anche tu
- ognuno può uscire dalla coppia e cancellare i dati

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 nascoste

Il divertimento sta nello scoprire insieme: ogni partner risponde senza vedere l'altro. Solo quando hanno risposto entrambi le due risposte si svelano. La regola è nel database (codice nei Dettagli tecnici), quindi non si può sbirciare.

I mazzi li scrivi con cura, con l'aiuto di Claude e poi rivedendoli: leggeri all'inizio, profondi dopo. Temi: ricordi, sogni, soldi, intimità (solo maggiorenni), litigi.

Domanda del giorno con notifica serale: è ciò che fa tornare le coppie ogni giorno.

4. Ricordi e serie

Archivio delle risposte come diario di coppia, serie di giorni consecutivi e un riassunto mensile affettuoso generato dall'AI.

Non è una terapia: per i problemi seri, l'app rimanda a un professionista.

5. Pagamenti con Stripe

Aggiungi un abbonamento a 3,99 € a settimana o 29,99 € all'anno, basta un abbonamento per la coppia. Gratis l'utente ha: un mazzo e la domanda del giorno. Con il piano Pro sblocca: tutti i mazzi, archivio e riassunti.

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. Segretezza: con un partner che non ha ancora risposto, prova a leggere la risposta dell'altro via API: non deve arrivare.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

La risposta si vede solo se hai risposto anche tu

La regola di sicurezza mostra le risposte del partner solo dopo che anche tu hai risposto a quella domanda.

create table risposte (
  coppia_id uuid not null,
  domanda_id int not null,
  utente_id uuid not null references auth.users(id) on delete cascade,
  testo text not null,
  primary key (coppia_id, domanda_id, utente_id)
);
alter table risposte enable row level security;

create policy "le mie risposte" on risposte for all
  using (utente_id = auth.uid()) with check (utente_id = auth.uid());

create function ho_risposto(p_coppia uuid, p_domanda int) returns boolean
language sql stable security definer set search_path = public as $
  select exists (select 1 from risposte
                 where coppia_id = p_coppia and domanda_id = p_domanda and utente_id = auth.uid());
$;

create policy "quella del partner dopo la mia" on risposte for select
  using (ho_risposto(coppia_id, domanda_id));

Pezzi comuni a tutti i progetti