---
title: App di Twenty
description: Crea e gestisci le personalizzazioni di Twenty come codice.
---

<Warning>
Le app sono attualmente in fase alfa. La funzionalità funziona ma è ancora in evoluzione.
</Warning>

## Cosa sono le app?

Le app ti consentono di estendere Twenty con oggetti, campi, funzioni logiche, componenti front-end, competenze IA e altro ancora — il tutto gestito come codice. Invece di configurare tutto tramite l'interfaccia utente, definisci in TypeScript il modello dati e la logica e li distribuisci in uno o più spazi di lavoro.

**Cosa puoi creare:**

* **Oggetti e campi personalizzati** — estendi il tuo modello dati con nuove entità o aggiungi campi a oggetti esistenti come Company o Person
* **Funzioni logiche** — funzioni lato server attivate da eventi del database, pianificazioni cron o route HTTP
* **Componenti front-end** — componenti React che vengono renderizzati nell'interfaccia utente di Twenty (pagine dei record, menu dei comandi, pannelli laterali)
* **Competenze e agenti IA** — estendi l'IA di Twenty con funzionalità personalizzate
* **Viste e navigazione** — viste salvate preconfigurate e link nella barra laterale

## Avvio rapido

```bash filename="Terminal"
npx create-twenty-app@latest my-twenty-app
cd my-twenty-app
yarn twenty dev
```

Questo genera lo scheletro di una nuova app, avvia facoltativamente un server Twenty locale e inizia a monitorare i tuoi file per le modifiche. Consulta la [Guida introduttiva](/l/it/developers/extend/apps/getting-started) per l'intera procedura.

## Guide dettagliate

| Guide                                                         | Descrizione                                                                                                                                  |
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| [Guida introduttiva](/l/it/developers/extend/apps/getting-started) | Crea lo scheletro di un'app, configura un server locale, struttura del progetto, CI                                                          |
| [Creare app](/l/it/developers/extend/apps/building)                | Definizioni di entità (`defineObject`, `defineLogicFunction`, `defineFrontComponent`, ecc.), client API, pacchetti npm, asset pubblici, test |
| [Pubblicazione](/l/it/developers/extend/apps/publishing)           | Distribuisci su un server, pubblica su npm, marketplace                                                                                      |

## Concetti chiave

### Rilevamento delle entità

L'SDK rileva le entità scansionando i tuoi file TypeScript alla ricerca di chiamate a `export default define<Entity>({...})`. La denominazione dei file e la struttura delle cartelle sono flessibili — il rilevamento è basato sull'AST, non sui percorsi.

### Tipi di entità disponibili

| Funzione                           | Scopo                                                  |
| ---------------------------------- | ------------------------------------------------------ |
| `defineApplication()`              | Metadati dell'applicazione (obbligatorio, uno per app) |
| `defineObject()`                   | Oggetti personalizzati con campi                       |
| `defineField()`                    | Campi su oggetti esistenti                             |
| `defineLogicFunction()`            | Logica lato server con trigger                         |
| `defineFrontComponent()`           | Componenti React nell'interfaccia utente di Twenty     |
| `defineRole()`                     | Ruoli di autorizzazione                                |
| `defineView()`                     | Configurazioni di viste salvate                        |
| `defineNavigationMenuItem()`       | Link di navigazione della barra laterale               |
| `defineSkill()`                    | Competenze dell'agente IA                              |
| `defineAgent()`                    | Agenti IA con prompt                                   |
| `definePageLayout()`               | Layout personalizzati delle pagine dei record          |
| `definePreInstallLogicFunction()`  | Viene eseguito prima dell'installazione dell'app       |
| `definePostInstallLogicFunction()` | Viene eseguito dopo l'installazione dell'app           |

### Flusso di lavoro di sviluppo

1. **`yarn twenty dev`** — osserva i file sorgente, ricompila alle modifiche, sincronizza con il server, genera client API tipizzati
2. **`yarn twenty build`** — produce una build distribuibile
3. **`yarn twenty deploy`** — distribuisce su un server Twenty remoto
4. **`yarn twenty add`** — crea lo scheletro di una nuova entità in modo interattivo

### Riferimento CLI

```bash filename="Terminal"
yarn twenty help          # List all commands
yarn twenty server start  # Start local dev server
yarn twenty remote add    # Connect to a Twenty server
yarn twenty exec -n fn    # Execute a logic function
yarn twenty logs -n fn    # Stream function logs
```

Consulta la [Guida introduttiva](/l/it/developers/extend/apps/getting-started) per il riferimento completo della CLI.
