Backend e account
Backend Supabase (collegalo una volta sola)
Collega il tuo progetto Supabase gratuito: database cloud, account utente e archiviazione per le app generate dall'AI
1Cosa ottieni collegando Supabase#
Per impostazione predefinita un'app generata dall'AI conserva i dati sull'unico telefono su cui è installata (modalità 'Offline'). Collega Supabase e la stessa app ottiene un vero database cloud (Postgres), account utente e archiviazione di file, così i dati sono condivisi tra dispositivi e utenti.
È BRING-YOUR-OWN: l'app usa il TUO progetto Supabase gratuito. AppMint non ospita nulla per te e non addebita nulla in più.
Non devi progettare tabelle né scrivere SQL. AppMint ricava lo schema dalla descrizione della tua app, lo applica e lo mantiene sincronizzato a ogni build.
2Cosa ti serve prima#
Un account Supabase gratuito: tutto qui. NON serve creare prima un progetto; AppMint può crearlo per te durante l'accesso.
Da sapere sul piano gratuito:
- 2 progetti per organizzazione.
- I progetti vanno in pausa dopo una settimana senza traffico e si riattivano alla richiesta successiva.
Se hai già un progetto che vuoi riutilizzare, va bene anche quello: AppMint mette ogni app nel proprio schema al suo interno, quindi più app possono condividere un solo progetto.
3Collegalo (un tocco, consigliato)#
In AI Studio, sotto 'WHERE YOUR APP'S DATA LIVES', tocca la scheda 'Supabase' (dice 'Tap to connect'). Scegli 'Sign in with OAuth'.
Il browser apre Supabase, accedi e approvi AppMint, e torni automaticamente nell'app: non c'è nessun token da copiare.
La stessa cosa è disponibile dall'ingranaggio ⚙ Impostazioni → 'BACKEND - SUPABASE' → '🔗 Connect Supabase (OAuth)'.
4Scegli o crea il progetto#
Subito dopo l'approvazione, AppMint mostra 'Pick a Supabase project':
- Scegli un progetto esistente, oppure
- Tocca '➕ Create new project…' → scegli l'organizzazione → dagli un nome (es. appmint-prod) → scegli una regione vicina ai tuoi utenti (non si può cambiare in seguito) → 'Create'. La preparazione richiede 1-2 minuti.
Quando AppMint crea il progetto mostra la password del database UNA sola volta, perché Supabase ne conserva solo un hash. Copiala in un posto sicuro prima di chiudere quella finestra: non serve per AppMint, ma ti servirà per collegare qualsiasi altro strumento.
Hai raggiunto il limite del piano gratuito ('Free tier allows 2 projects per organization')? Scegli un progetto esistente, oppure passa a un piano superiore nella dashboard di Supabase.
5Oppure collega manualmente (self-hosted / senza OAuth)#
Impostazioni → 'BACKEND - SUPABASE' → 'MANUAL / SELF-HOSTED':
- Project URL: dalla dashboard di Supabase, Project Settings → API. Ha questo aspetto: https://YOUR-PROJECT-REF.supabase.co
- Chiave anon: la chiave pubblicabile della stessa pagina; inizia con 'eyJ'. Questa chiave è fatta per essere pubblica: a proteggere i tuoi dati è la Row-Level Security, non il fatto di nascondere la chiave.
- Attiva 'Enable Supabase backend for generated apps' e tocca 'Save Supabase config'.
Seleziona 'Self-hosted instance' se gestisci Supabase in autonomia. La modalità manuale non può distribuire automaticamente lo schema su Cloud: aggiungi un Personal Access Token (passaggio successivo) se lo vuoi.
Project URL https://abcdefghijkl.supabase.co
anon key eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...6Cosa fa AppMint a ogni build#
Una volta collegato, ogni generazione svolge il lavoro di backend al posto tuo:
- Applica lo schema scritto dall'AI (tabelle, indici, policy di Row-Level Security).
- Esegue i dati iniziali (seed), se l'app ne ha bisogno.
- Crea bucket di Storage per caricamenti e immagini.
- Distribuisce le edge function (pagamenti, e-mail, webhook) e salta quelle che non sono cambiate.
- Imposta i provider di autenticazione e il Site URL.
- Esegue un controllo di sicurezza e uno di migrazione, poi riporta i tipi TypeScript nel progetto.
Le tabelle della tua app vivono nel loro schema chiamato appmint_<la tua app>. Gli account utente sono condivisi tra tutte le app del progetto, quindi una sola registrazione vale ovunque.
7Verifica che abbia funzionato#
Due controlli rapidi:
- La scheda 'Supabase' in AI Studio ora mostra 'Connected', e le Impostazioni mostrano il riferimento del progetto.
- Impostazioni → 'DIAGNOSTICS' → '⚡ Test Supabase connection': segnala il successo oppure l'errore preciso.
Dopo aver generato un'app, apri la dashboard di Supabase → Table Editor e cambia il selettore dello schema da 'public' ad appmint_<la tua app> per vedere le tabelle create da AppMint.
8Quali chiavi sono sicure e dove#
- Chiave anon: sicura dentro le app generate. La Row-Level Security decide cosa può leggere o scrivere ogni utente che ha effettuato l'accesso.
- Chiave service_role: NON va MAI in un'app. AppMint la conserva cifrata solo su questo dispositivo e la usa per i bucket di Storage e per applicare lo schema in self-hosted.
- Personal Access Token (sbp_…): anche questo resta solo sul dispositivo; permette ad AppMint di distribuire automaticamente lo schema e le edge function su Supabase Cloud. Creane uno su supabase.com/dashboard/account/tokens con ambito progetto in lettura + scrittura.
Entrambe le chiavi opzionali si trovano in Impostazioni → 'ADVANCED - DEPLOY CREDENTIALS'.
9Sblocca: Google Sign-In, Stripe, Remote Update#
Diverse funzioni richiedono prima Supabase collegato e ti rimandano qui finché non lo è:
- 'Continue with Google' nelle app generate.
- Pagamenti Stripe (il checkout viene eseguito in una edge function nel tuo progetto).
- Remote Update: gli aggiornamenti che invii alle app installate sono salvati nel tuo progetto Supabase.
Collega una volta e tutti e tre diventano disponibili; non devi ripeterlo per ogni app.
10Rimuovere il backend di un'app#
Impostazioni → 'DANGER ZONE' (visibile quando sei collegato):
- '📋 List & delete project tables': sfoglia tutte le tabelle create da AppMint ed elimina quelle che non ti servono più.
- '🗑 Delete this whole app backend': rimuove lo schema di quell'app e, se vuoi, i suoi bucket di Storage e le sue edge function. Per confermare scrivi DELETE.
Se hai dubbi scegli 'Data only': i bucket e le edge function sono condivisi in tutto il progetto, non per singola app. I tuoi account utente non vengono mai toccati.
Per disconnettere del tutto: Impostazioni → 'ONE-TAP OAUTH' → '🔒 Disconnect Supabase OAuth'.
11Se qualcosa non funziona#
- 'Not connected' dopo l'accesso → l'OAuth è terminato ma non è ancora associato nessun progetto. Impostazioni → 'Choose project'.
- Un avviso che la chiave anon non è stata recuperata automaticamente → nell'approvazione OAuth di Supabase manca l'ambito Secrets:Read. Copia la chiave anon da Project Settings → API e incollala nelle Impostazioni (passaggio 5).
- 'Could not list your Supabase organizations' durante la creazione di un progetto → crea il progetto nella dashboard di Supabase, poi torna qui e selezionalo.
- 'Connect Supabase first' in Remote Update o Stripe → questo capitolo, passaggio 3.
- Lettura/scrittura dei dati non riescono in un'app generata → esegui prima '⚡ Test Supabase connection'; se passa, chiedi all'AI di correggere la policy Row-Level Security per la tabella che indica.