Vai al contenuto principale

Prerequisiti

  • Node.js 24+Scarica
  • Yarn 4 — incluso con Node.js tramite Corepack. Abilitalo: corepack enable
  • DockerScarica. Necessario per eseguire un server Twenty locale. Salta se hai già Twenty in esecuzione altrove.
La creazione di un’app Twenty ha tre fasi. Lo strumento di scaffolding le combina in un unico comando per il percorso ottimale, ma ogni fase è un concetto distinto — quando qualcosa fallisce, sapere in quale fase ti trovi indica cosa correggere.
FaseCosa faiStrumentoRisultato
1. Crea strutturaGenera il codice sorgente dell’appnpx create-twenty-appUn progetto TypeScript sul disco
2. Esegui un serverAvvia un server Twenty con cui sincronizzareDocker + yarn twenty serverUn’istanza Twenty in esecuzione
3. SincronizzaSincronizza in tempo reale il tuo codice con il serveryarn twenty devLe tue modifiche compaiono nell’UI

Fase 1 — Crea la struttura del progetto

Crea una nuova app dal modello:
npx create-twenty-app@latest my-twenty-app
Ti verrà chiesto un nome e una descrizione — premi Invio per usare i valori predefiniti. Questo genera un progetto TypeScript in my-twenty-app/ con un application-config.ts iniziale, un ruolo predefinito, un workflow CI e un test di integrazione. Dopo questa fase: hai il codice sorgente dell’app sulla tua macchina. Non è ancora in esecuzione — questa è la Fase 2.

Fase 2 — Esegui un server Twenty locale

La tua app ha bisogno di un server Twenty con cui sincronizzarsi. Il server è un’istanza Twenty completa — UI, API GraphQL, PostgreSQL — in esecuzione in locale su Docker. Il tuo codice locale carica le sue definizioni su quel server, che le rende visibili nell’UI. Lo strumento di scaffolding ti propone di avviarne uno per te:
Vuoi configurare un’istanza locale di Twenty?
  • Sì (consigliato) — scarica l’immagine Docker twentycrm/twenty-app-dev e la avvia sulla porta 2020. Assicurati prima che Docker sia in esecuzione.
  • No — scegli questa opzione se hai già un server Twenty a cui vuoi connetterti. Puoi collegarlo in seguito con yarn twenty remote:add.
Avviare l'istanza locale?
Quando il server è attivo, si apre il browser per l’accesso. Usa l’account demo preconfigurato:
  • Email: tim@apple.dev
  • Password: tim@apple.dev
Schermata di accesso di Twenty
Fai clic su Authorize nella schermata successiva — questo concede alla CLI l’accesso al tuo spazio di lavoro.
Schermata di autorizzazione della CLI di Twenty
Il terminale confermerà che tutto è configurato.
App creata con successo
Dopo questa fase: hai un server Twenty in esecuzione su http://localhost:2020 con la tua CLI autorizzata a sincronizzarsi con esso.
Se Docker non è installato o in esecuzione, lo strumento di scaffolding ti indicherà il comando di avvio corretto per il tuo sistema operativo. Quando Docker è attivo, puoi riprendere con yarn twenty docker:start — non è necessario rifare lo scaffolding.

Fase 3 — Sincronizza le tue modifiche

Questo è il ciclo interno in cui passerai la maggior parte del tempo.
cd my-twenty-app
yarn twenty dev
Questo osserva src/, ricompila a ogni modifica e sincronizza il risultato con il server. Modifica un file, salvalo e in pochi secondi il server riflette la modifica. Vedrai un pannello di stato in tempo reale nel terminale. Per un output più dettagliato (log di build, richieste di sincronizzazione, tracce di errore), aggiungi --verbose.
Output del terminale in modalità sviluppo
Apri http://localhost:2020/settings/applications#developer. Dovresti vedere la tua app sotto Your Apps.
Elenco Your Apps che mostra My twenty app
Fai clic su My twenty app per vedere la sua registrazione dell’applicazione — un record a livello di server che descrive la tua app (nome, identificatore, credenziali OAuth, origine). Una registrazione può essere installata in più spazi di lavoro sullo stesso server.
Dettagli della registrazione dell'applicazione
Fai clic su View installed app per vedere l’installazione nello spazio di lavoro. La scheda About mostra la versione e le opzioni di gestione.
App installata
Dopo questa fase: hai un ciclo di sviluppo in tempo reale. Modifica qualsiasi file in src/ e compare nell’UI.

Sincronizzazione una tantum per CI e script

Passa --once per eseguire una singola build + sincronizzazione ed uscire — stessa pipeline, nessun watcher:
yarn twenty dev --once
ComandoComportamentoQuando usarlo
yarn twenty devMonitora e risincronizza a ogni modifica. Rimane in esecuzione finché non lo interrompi.Sviluppo locale interattivo.
yarn twenty dev --onceSingola build + sincronizzazione, termina con codice 0 in caso di successo, 1 in caso di errore.CI, hook pre-commit, agenti IA, flussi di lavoro scriptati.
yarn twenty dev --once --dry-runCrea e stampa le modifiche ai metadati senza applicarle.Ispezionare quali modifiche verrebbero apportate da una sincronizzazione prima di confermarla.
Entrambe le modalità richiedono un remoto autenticato. Vedi Sincronizzazione e ripristino per maggiori informazioni su --dry-run.

Opzioni della modalità di sviluppo

OpzioneDescrizione
--onceEsegui una build e una sincronizzazione una sola volta, quindi esci.
--dry-runCon --once, visualizza in anteprima le modifiche ai metadati senza applicarle. Non scrive nulla.
--debounceMs \<ms>Imposta il ritardo di debounce delle modifiche ai file in millisecondi (predefinito: 2000).
--verbose / --debugMostra log di build dettagliati, richieste di sincronizzazione e tracce di errore.

Cosa puoi creare

Le app sono composte da entità — ciascuna definita come un file TypeScript con un singolo export default:
EntitàCosa fa
Oggetti e campiModelli di dati personalizzati (Cartolina, Fattura, ecc.) con campi tipizzati
Funzioni logicheTypeScript lato server attivato da route HTTP, pianificazioni cron o eventi del database
Componenti front-endComponenti React che vengono renderizzati all’interno dell’UI di Twenty (pannello laterale, widget, menu comandi)
Skill e agentiFunzionalità di IA — istruzioni riutilizzabili e assistenti autonomi
Viste e navigazioneViste elenco preconfigurate e voci di menu della barra laterale
Layout di paginaPagine di dettaglio dei record personalizzate con schede e widget
Riferimento completo: Concetti.

Prossimi passaggi

Configurazione

Identità dell’applicazione, ruolo predefinito, hook di installazione, asset pubblici.

Dati

Oggetti, campi e relazioni bidirezionali.

Logica

Funzioni logiche, skill, agenti e connessioni OAuth.

Layout

Viste, navigazione, layout di pagina, componenti front-end.

Operazioni

CLI, test, remoti, CI e pubblicazione della tua app.