Salta al contenuto
supastack
Sfoglia la documentazione
MobileExpo

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /it/docs/mobile/notifications.md (or send Accept: text/markdown).

Notifiche e push

La posta in arrivo in-app, le preferenze dei canali e la pipeline push Expo.

La posta in arrivo e le preferenze dei canali

Il tab delle notifiche elenca le notifiche del workspace da GET /api/notifications e le segna come lette con una PATCH sull'id della notifica. Impostazioni → Notifiche modifica le preferenze dei canali condivise — emailBilling, emailInvites, inAppProduct — tramite GET e PATCH sulla vista preferences della stessa rotta, l'esatto contratto che usa l'app web. Il conteggio dei non letti compare sulla schermata home.

Registra un dispositivo per il push

All'accesso — e di nuovo a ogni cambio di workspace — l'app richiede il permesso per le notifiche, risolve l'id di progetto EAS dalla configurazione dell'app, ottiene un Expo push token e lo invia a POST /api/mobile/push-tokens. Android si registra sul canale predefinito con importanza alta.

La registrazione riporta registered, permission_denied o unavailable e non lancia mai — l'accesso non è mai bloccato dal push. Expo Go e i simulatori non possono completare la registrazione, quindi la copertura reale richiede una build di sviluppo. Il token è conservato in SecureStore (supastack.push.token) così la disconnessione può annullarne la registrazione prima che il cookie di sessione venga distrutto.

Consegna lato server e ricevute

GET elenca i token del membro, POST inserisce o aggiorna un token sotto il workspace attivo e DELETE revoca — lista e revoca restano nell'ambito utente così un account senza workspace può comunque fare pulizia. Ogni utente conserva al massimo venti token dispositivo; registrarne uno in più elimina il più vecchio.

Ogni notifica di workspace in-app viene anche inviata in push best-effort: il server spedisce alla push API di Expo in blocchi di cento, registra i ticket ok e rimuove subito i token DeviceNotRegistered. L'opzionale EXPO_ACCESS_TOKEN solo server aggiunge un header Bearer a quelle chiamate e non viene mai loggato. Una pianificazione di piattaforma riconcilia le ricevute ogni trenta minuti e ripulisce i ticket obsoleti — richiede lo stesso driver di tick dello scheduler delle altre pianificazioni di piattaforma.

# Optional server-only token for authenticated Expo push sends:
# apps/web/.env.local
EXPO_ACCESS_TOKEN=

I tocchi sulle notifiche aprono rotte dell'app

I mittenti allegano un percorso web come data.href. L'app lo valida — solo percorsi assoluti con slash, lunghezza limitata, nessun attraversamento — e mappa i percorsi noti su rotte native, ad esempio /billing su /settings/billing e /dashboard su /home. Un tocco che arriva da non autenticati viene messo in coda e consegnato una volta completato l'accesso.

Verifica e risoluzione dei problemi

Testa su una build di sviluppo: concedi e nega il permesso, attiva/disattiva il push in Impostazioni → Notifiche — la schermata riporta questo dispositivo come enabled, disabled o denied — e tocca una notifica a freddo e a caldo. Se lo spegnimento mostra un errore, la deregistrazione lato server è fallita e il dispositivo resta registrato finché non riesce.

Domande frequenti

14 domande

Cos'è supastack?

supastack è una base modulare per costruire prodotti SaaS con AI. Riunisce l'infrastruttura comune così puoi concentrarti sulle funzionalità proprie del tuo prodotto.

Supporta web e mobile?

Sì. supastack include app Next.js ed Expo come punti di partenza per esperienze web e mobile.

Quale autenticazione è inclusa?

Better Auth copre email/password, OTP e login social. I workspace personali vengono provisionati con l'account così i record restano delimitati fin dal primo giorno.

Come è supportata l'AI?

supastack include AI multi-provider configurabile, tracciamento dell'uso, budget e supporto cifrato per le proprie chiavi (BYOK).

Come vengono gestiti gli abbonamenti?

Per i prodotti costruiti sul kit, fatturazione Stripe, abbonamenti e permessi formano la base dell'accesso a pagamento. I segreti dei provider restano lato server.

Dove vive il codice specifico del mio prodotto?

Le funzionalità specifiche del prodotto restano in un codebase separato, mentre il prodotto configura e integra i moduli base di supastack.

Come funziona il prezzo di supastack?

Il kit è un acquisto unico con aggiornamenti a vita: Stack singolo a 249 $ — a scelta tra i repo Next.js (web), Expo (iOS e Android) o Tauri (macOS e Windows) —, Doppio stack a 398 $ con due repo a scelta, o Pacchetto completo a 399 $ con tutti e tre i repo e il monorepo completo, più 75 $ per posto sviluppatore aggiuntivo. Nessun abbonamento al kit. Il checkout su questo sito consegna la tua chiave di licenza via email, con accesso al repo tramite invito GitHub.

Come delimitano i workspace i miei dati?

I record utente sono delimitati da workspaceId. Identità, permessi, uso AI, eventi di fatturazione e voci di audit restano dentro il confine del workspace personale.

Come funzionano i job in background?

Trigger.dev è il runtime di job esplicito. Il contratto JobRunner promette solo enqueue, status e cancel — la semantica di workflow resta specifica ed esplicita di Trigger.dev.

In cosa differisce l'email dall'outreach?

L'email transazionale copre i flussi di prodotto come gli avvisi di completamento delle attività. L'outreach a freddo e le campagne appartengono al prodotto, fuori dal modulo email di questo kit.

Come funzionano gli acquisti su mobile?

La versione mobile include acquisti nativi e ripristino tramite RevenueCat, con accesso verificato dal server. Configura gli account degli store e completa i test sui dispositivi prima della pubblicazione. I pagamenti web restano separati.

Dove risiedono le chiavi dei provider AI?

Le credenziali BYOK sono cifrate e restano lato server. Le chiavi vengono sanificate nei log; uso e budget restano visibili a livello di workspace.

Quali metodi di pagamento accetta il checkout?

Il checkout ospitato da Stripe accetta le carte e può offrire anche Alipay e WeChat Pay una volta attivati i wallet sull'account Stripe — utile per gli acquirenti in Cina. Le autorizzazioni dei wallet vengono confermate in modo asincrono, quindi la pagina della licenza si aggiorna non appena il pagamento va a buon fine.

Posso ottenere un rimborso?

Una volta ottenuto l'accesso al repository, supastack è tuo per sempre, quindi non può essere rimborsato. Ma non preoccuparti: ricevi il codice sorgente completo con aggiornamenti a vita per creare e lanciare prodotti illimitati per te o per i tuoi clienti. L'unica condizione è che non puoi rivendere il codice né ridistribuire il repository come starter kit o modello.

IT
Tema