ChefGPT
Ricette, piani pasto e calorie, creati dall'AI
Incasso mensile: 2000 USD (fonte indicata nella scheda)
Cosa fa
App che crea ricette e piani dei pasti con l'AI e tiene il conto delle calorie.
Come guadagna
Ha entrate ricorrenti ogni mese, verificate su TrustMRR. Prezzi e piani esatti sono indicati sul sito del progetto.
Rendilo tuo
- Ricette con quello che hai in frigo, per non sprecare.
- Cucina italiana di stagione, con la spesa della settimana.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Cucina Leggera": crea ricette con quello che c'è in frigo, prepara il menù della settimana con la lista della spesa e tiene un diario delle calorie indicative. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Pagina iniziale con esempi di ricette e prezzi
2. Registrazione e preferenze: dieta, allergie, persone in casa, obiettivo calorico facoltativo
3. Crea una ricetta: scrivi gli ingredienti che hai
4. Menù della settimana e lista della spesa
5. Diario: pasti del giorno e calorie stimate
Stile: fresco e appetitoso: sfondo bianco, verde basilico #16A34A, pomodoro #DC2626 per i dettagli, carattere "Nunito", card delle ricette con icone degli ingredienti. 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:
- "preferenze": dieta, allergie, persone, obiettivo calorico, una per utente
- "ricette": titolo, ingredienti con quantità, passaggi, porzioni, calorie stimate per porzione, salvate dall'utente
- "pasti": cosa ha mangiato, quando, calorie stimate
Regole di sicurezza obbligatorie:
- ogni utente vede e modifica solo i suoi dati
- i crediti non si modificano 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. Ricette dagli ingredienti
L'utente scrive o detta gli ingredienti che ha ("2 zucchine, uova, mezzo pacco di pasta, parmigiano"). La Edge Function "ricetta" (un credito) chiede a Claude 3 ricette in JSON che usano soprattutto quegli ingredienti, rispettando dieta e allergie, con quantità, passaggi numerati, tempo e calorie stimate per porzione.
Le allergie si controllano due volte: Claude le riceve nelle istruzioni, e il sito controlla comunque che nessun ingrediente della ricetta contenga le parole delle allergie, mostrando un avviso rosso se succede.
Pulsante "Salva" e "Aggiungi al diario".
4. Menù, spesa e diario
Il menù della settimana propone pranzi e cene vari e una lista della spesa unica, con le quantità sommate e divise per reparto (frutta e verdura, latticini...), da spuntare al supermercato.
Il diario mostra i pasti del giorno con le calorie stimate e il totale (query nei Dettagli tecnici). Avviso fisso: "Calorie stimate e indicative. Per una dieta chiedi a un medico o a un nutrizionista". Nessun obiettivo sotto le 1.200 calorie al giorno.
5. Pagamenti con Stripe
Aggiungi pacchetti di crediti: 30 ricette a 4,99 €, 100 ricette a 9,99 €. Ogni nuovo utente riceve 5 crediti gratis. Ogni richiesta di ricette o di menù costa un credito; il diario è gratis. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.
A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.
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. Allergie: imposta l'allergia alle arachidi e chiedi una ricetta con burro di arachidi: deve comparire l'avviso e la ricetta non deve contenerle.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Tabelle e totale del giorno
Preferenze, ricette salvate, diario dei pasti e la somma delle calorie di oggi.
create table preferenze (
utente_id uuid primary key references auth.users(id) on delete cascade,
dieta text not null default 'onnivora',
allergie text[] not null default '{}',
persone int not null default 2,
obiettivo_kcal int check (obiettivo_kcal is null or obiettivo_kcal >= 1200)
);
create table ricette (
id uuid primary key default gen_random_uuid(),
utente_id uuid not null references auth.users(id) on delete cascade,
titolo text not null,
ingredienti jsonb not null, -- [{ nome, quantita, unita }]
passaggi text[] not null,
porzioni int not null,
kcal_porzione int
);
create table pasti (
id uuid primary key default gen_random_uuid(),
utente_id uuid not null references auth.users(id) on delete cascade,
descrizione text not null,
kcal int not null,
mangiato_il timestamptz not null default now()
);
alter table preferenze enable row level security;
create policy "le mie preferenze" on preferenze for all
using (auth.uid() = utente_id) with check (auth.uid() = utente_id);
alter table ricette enable row level security;
create policy "le mie righe" on ricette
for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);
alter table pasti enable row level security;
create policy "le mie righe" on pasti
for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);
-- Calorie di oggi
select coalesce(sum(kcal), 0) as kcal_oggi
from pasti
where utente_id = auth.uid()
and mangiato_il >= date_trunc('day', now());Istruzioni per l'AI: ricetta
Le istruzioni fisse che la Edge Function "ricetta" 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".
Sei un cuoco italiano attento alla salute. Proponi 3 ricette semplici che usano soprattutto gli ingredienti indicati, rispettando dieta e allergie (non usare MAI ingredienti che le contengono). Quantità per il numero di persone indicato, calorie per porzione stimate in modo realistico. Rispondi solo con JSON: {"ricette": [{"titolo", "tempo_minuti", "porzioni", "ingredienti": [{"nome", "quantita", "unita"}], "passaggi": ["..."], "kcal_porzione"}]}.
Pezzi comuni a tutti i progetti
- Pagamenti con Stripe
- Profili, piano e crediti
- Chiamare l'AI dal server
- Controllo finale prima di pubblicare
Glossario
- JSONB
- Un tipo di colonna che contiene dati strutturati flessibili, come un piccolo documento.