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));
