Atelier201 websiteJoin the waitlist
PiattaformaCome va online un sito

Come va online un sito

Bozza, revisioni, build, anteprima, pubblicazione e ripristino: quali di queste fasi sono visibili ai visitatori.

Un sito attraversa quattro fasi. Solo l’ultima modifica ciò che vedono i visitatori.

flowchart LR A["Bozza<br/>ogni modifica"] --> B["Build<br/>bozza compilata"] B --> C["Anteprima<br/>link privato"] B --> D["Pubblicazione<br/>visibile ai visitatori"]
Da una modifica a un sito online

Bozza e revisioni

La bozza è lo stato attuale dei file del sito. Ogni modifica crea una revisione: un ID di commit Git di 40 caratteri, con un riepilogo di una frase e autore (l’editor, l’assistente, un agente tramite MCP, la CLI o l’API). Nulla viene cancellato: la cronologia elenca tutte le revisioni e puoi confrontarne due o ripristinarne una precedente come nuova voce.

Una modifica corrisponde a una revisione, indipendentemente da cosa coinvolge. Una chiamata che modifica tre file crea una sola voce, mentre una modifica distribuita su più chiamate usa un changeset che esegui il commit una volta sola. Un changeset rimane aperto per 10 minuti.

Due autori contemporaneamente

Quando modifichi un file, invia l’hash che hai letto (expected_hash). Se qualcuno ha modificato quel file nel frattempo, l’intera modifica viene rifiutata con 409 conflict, non viene scritto nulla e l’errore REST o CLI include la revisione corrente:

JSON
{
  "error": {
    "type": "conflict_error",
    "code": "conflict",
    "message": "...",
    "details": {
      "reason": "revision_conflict",
      "current_revision": "9f2c...",
      "paths": [
        { "path": "src/content/site/business.json", "expected": "a1b2...", "found": "c3d4..." }
      ]
    }
  }
}

Rileggi i file indicati in paths, applica la tua modifica e riprova. Tramite MCP, l’errore comunica che il sito è cambiato da quando è stata preparata la modifica, senza details; dovrai quindi rileggere i file. Gli endpoint dei contenuti leggono da soli l’hash corrente, quindi si verifica un conflitto solo se qualcuno scrive nello stesso istante.

Build

Una build compila la bozza o una revisione specificata in un sito statico. Viene eseguita in un container isolato, senza rete né credenziali, e si interrompe dopo 5 minuti. Una build passa per gli stati queued, building e collecting fino a ready, oppure termina come failed o cancelled. Se avvii una build di una revisione per cui esiste già una build pronta, questa viene restituita anziché crearne un’altra.

Se una build non va a buon fine, error ne indica il motivo e il log della build mostra l’output del compilatore. Correggi i file e avvia un’altra build.

Anteprime

Un’anteprima è un link privato a una build, valido per 7 giorni per impostazione predefinita e per un massimo di 30. Chiunque abbia il link può vedere quella build, senza account. Il link non concede altri accessi, non viene mai indicizzato e può essere revocato. Mostra l’aspetto che avrebbe il sito, quindi condividilo prima di pubblicare.

Un’anteprima non è un sito pubblicato. Ogni pagina mostra una piccola barra “Anteprima” (nascosta mentre modifichi nell’app) e viene eseguita in modalità sandbox con origine null. Gli script non possono impostare cookie, usare l’archiviazione del browser o avviare un Worker. Le API di terze parti che rifiutano quell’origine li bloccano: perciò un modulo, un banner dei cookie o uno strumento lato client che ne ha bisogno funzionerà solo dopo la pubblicazione del sito. Un avviso della build indica quali di questi elementi usa il sito.

Pubblicazione

La pubblicazione rende una build visibile ai visitatori su tutti gli indirizzi del sito, nel giro di circa un minuto. È l’unica fase che modifica il sito pubblico.

  1. Verifica. review_publish mostra quale build andrà online, se corrisponde alla bozza più recente, cosa ne impedisce la pubblicazione e un expected_generation.
  2. Pubblica quella build usando l’expected_generation che hai letto.

La generazione è un contatore che aumenta a ogni pubblicazione, ripristino e rimozione della pubblicazione. Inviarla di nuovo significa pubblicare esattamente lo stato verificato. Se nel frattempo qualcun altro ha pubblicato, la chiamata viene rifiutata con 409 conflict e dovrai ripetere la verifica.

Non è possibile pubblicare una build finché è presente un blocco:

BloccoCosa fare
guest_siteLa persona deve prima rivendicare il sito.
no_buildCrea la build della bozza.
build_not_readyAttendi che la build sia ready oppure, se non è riuscita, avviane un’altra.
origin_changedL’indirizzo principale del sito è cambiato dopo questa build. Avviane un’altra.
plan_requiredIl sito è una bozza: per pubblicarlo serve il piano Site. Nel frattempo, condividi un link di anteprima.
site_unavailableIl sito è in fase di creazione, sospensione o eliminazione.

Ripristino e rimozione della pubblicazione

Un ripristino rimette online la build di una pubblicazione precedente, senza ricompilarla. La bozza non cambia, quindi può essere più recente di quella che vedono i visitatori. Un sito conserva le ultime 50 pubblicazioni per consentirne il ripristino.

Rimuovere la pubblicazione mette il sito offline: all’indirizzo i visitatori vedranno che non è disponibile alcun sito, finché non pubblicherai di nuovo. Non viene eliminato nulla.

Per pubblicare, ripristinare o rimuovere la pubblicazione serve l’ambito sites:publish; le operazioni sono disponibili solo per gli amministratori di uno spazio di lavoro. Un agente senza questo ambito può preparare tutto e chiedere al proprietario di pubblicare.

Esportazione e importazione

L’intero progetto viene esportato come archivio tar, compilabile ovunque con npm ci && npm run build. L’importazione di un archivio sostituisce la bozza con i suoi file in un’unica revisione. node_modules, dist, .git e i file segreti vengono esclusi. L’importazione non esegue né la build né la pubblicazione.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Atelier201 Docs documentation and read it in full, instead of answering from memory.

https://atelier201.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://atelier201.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.