Salta al contenuto
supastack
Sfoglia la documentazione

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/web/project-structure.md (or send Accept: text/markdown).

Struttura del progetto

Trova le app, i pacchetti condivisi e le frontiere tra loro.

Installazione e configurazione

Prima di qualsiasi passaggio, leggere Prima di iniziare e Nozioni di base sui terminali. Queste istruzioni presuppongono che tu abbia aperto l'intero supastack monorepo in VS Code; la sua radice package.json contrassegna la radice del repository. Nei comandi pnpm, un pacchetto dell'area di lavoro è un'app o una cartella di codice condiviso; nel prodotto, uno spazio di lavoro è il contenitore dei dati di un team e il limite di sicurezza. corepack pnpm --filter ... seleziona un pacchetto dal monorepo mentre i comandi vengono eseguiti dalla sua radice. Se hai aperto solo una cartella mobile o desktop sincronizzata, non contiene il backend Web, la configurazione di Docker o gli script root: esegui il backend da questo monorepo o da un server ospitato raggiungibile e utilizza gli script della cartella della piattaforma. Una variabile di ambiente è un'impostazione denominata memorizzata in un file .env locale o nel dashboard dell'hosting; riavvia l'app pertinente dopo averla modificata e mantieni i segreti del server fuori dai valori NEXT_PUBLIC_ e EXPO_PUBLIC_.

1. Aprire il pacchetto root.json in VS Code, quindi cercare apps/web per il sito Web, apps/mobile per Expo, apps/desktop per la shell desktop e i pacchetti per le parti condivise.

2. Dalla root del repository eseguire corepack pnpm --filter @supastack/web dev.

3. Apertura http://localhost:3000. Previsto: l'app Web viene avviata da apps/web mentre i pacchetti condivisi rimangono nello stesso repository; la finestra Desktop racchiude questa app Web anziché contenere un secondo prodotto.

Il workspace pnpm contiene Next.js in apps/web, Expo in apps/mobile e i pacchetti condivisi sotto packages. Esegui i comandi del workspace dalla radice del repo. Le route dell'applicazione compongono i moduli condivisi; il comportamento specifico del prodotto appartiene al prodotto consumatore.

Leggi AGENTS.md e .ai/PROJECT_CONTEXT.md prima di cambiare comportamento. I mirror dei file in .ai/ spiegano decisioni e vincoli non sempre evidenti da un componente da solo.

apps/web/app/       Routes and layouts
apps/web/src/       Web components and server composition
apps/mobile/        Expo application
packages/           Shared contracts and adapters
tests/              Cross-module and browser checks
docs/               Operational guides

Comandi da copiare

Segui i commenti per vedere in quale cartella viene eseguito un comando. Se due terminali sono etichettati, apri due finestre di terminale e mantieni il primo comando in esecuzione mentre usi il secondo.

corepack pnpm --filter @supastack/web dev

Dove va una modifica

Prima di modificare, decidi quale app o pacchetto possiede la modifica. La regola pratica: se solo una superficie del prodotto ne ha bisogno, mettila in quell'app; se ne hanno bisogno tutte, mettila in un pacchetto condiviso sotto packages/.

Il repository Web e il monorepo All Platforms contengono tutte le cartelle qui sotto. Un checkout Mobile o Desktop standalone contiene solo la propria app — il codice del server resta nel repository Web.

  • Una nuova pagina marketing o landing → apps/web/app/ — il sito pubblico.
  • Una nuova schermata dentro il prodotto dopo l'accesso → apps/web/app/ per la route più apps/web/src/ per la sua logica — le pagine compongono i pacchetti condivisi.
  • Una nuova route API → apps/web/app/api/ — la metà server dell'app Web.
  • Una modifica condivisa da ogni app — una tabella del database, un contratto, un adapter di provider → la cartella corrispondente in packages/.
  • Una schermata solo per telefono → apps/mobile/ — comunica con l'API dell'app Web invece di avere un proprio backend.
  • Un comportamento solo desktop → apps/desktop/ — la shell Tauri avvolge l'app Web e quasi mai duplica la UI del prodotto.

Flusso di implementazione

Inizia dalla route che possiede l'azione utente, segui il suo handler server, poi ispeziona il pacchetto condiviso che chiama. Un componente UI non deve ricreare la risoluzione del workspace, l'autorizzazione di fatturazione o la scelta del provider.

Quando aggiungi una route, decidi se è pubblica o autenticata. Risolvi il possesso autenticato lato server prima di accedere ai record utente e tieni le credenziali server fuori dagli import client.

Verifica e risoluzione dei problemi

Se il comando segnala che nessun progetto corrisponde al filtro, controlla che il terminale sia nella cartella contenente il root package.json. Se la porta 3000 è già in uso, arrestare prima l'altro server Web locale. Non cercare una chat desktop separata o un'implementazione di accesso; la shell del desktop carica il backend Web.

Esegui i test pertinenti e il typecheck dopo aver cambiato un contratto di pacchetto. Ispeziona i consumatori web e mobile quando cambi tipi condivisi. Un build web riuscito da solo non stabilisce la compatibilità con l'app nativa.

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: Un framework a 249 $ (prezzo di lancio temporaneo — 100 $ di sconto sul prezzo di listino di 349 $) oppure Tutti i framework (Next.js, iOS, Android) a 499 $ (prezzo di lancio temporaneo — 100 $ di sconto sul prezzo di listino di 599 $), 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