Da una cartella vuota a un sito web online: guida completa per principianti
Preferisci guardarlo? Ecco l’intero manuale in un unico video guidato, narrato dall’inizio alla fine, con ogni schermata dei provider animata (sottotitoli in inglese):
Dominio, Cloudflare, GitHub, Claude Code e Vercel, da zero alla produzione.
Questo è un manuale completo da seguire passo passo, pensato per chi parte da zero. Ogni passo ha il comando esatto, un Checkpoint che ti dice cosa dovresti vedere e, dove le persone si bloccano di solito, una nota Se fallisce. Un agente IA (Claude Code) fa il lavoro deterministico: scaffolding, Git, deploy. Tu tieni gli account, le decisioni e la verifica.
In tutto il manuale, sostituisci example.com con il tuo dominio reale e
username con il tuo vero username GitHub. Non saltare un checkpoint. Se un
comando non viene riconosciuto o un output sembra sbagliato, fermati e sistemalo
prima di andare avanti.
Una nota sui termini: un terminale è l’app di testo dove scrivi i comandi. Su macOS apri Terminal; su Windows usa PowerShell o Windows Terminal; su Linux usa la tua app di terminale. Più avanti, VS Code ha il suo terminale integrato.
Fase 1 · Il dominio e il DNS
Passo 1: Compra un dominio
Compra un dominio da Hostinger o da un qualsiasi registrar, per esempio
example.com. Mantieni l’accesso all’account del registrar: cambierai i suoi
nameserver al passo successivo.
Checkpoint. Puoi aprire il pannello di gestione del dominio dal tuo registrar.
Passo 2: Crea un account Cloudflare
Crea un account Cloudflare gratuito, poi: accedi, scegli Add a domain, inserisci il dominio del Passo 1 e scegli il piano Free. Continua finché Cloudflare mostra due nameserver assegnati, simili a:
ada.ns.cloudflare.com
bob.ns.cloudflare.com
Checkpoint. Cloudflare mostra due nameserver assegnati al tuo dominio.
Passo 3: Collega il dominio a Cloudflare
Nel pannello del dominio del registrar, trova la configurazione dei nameserver e sostituisci quelli attuali con i due di Cloudflare. Salva.
Cosa fa. I nameserver dicono a internet quale provider DNS è autoritativo per il tuo dominio. Dopo questo cambio, Cloudflare diventa il posto dove gestisci i record DNS del dominio.
Checkpoint. Di nuovo in Cloudflare, lo stato del dominio diventa Active. Non continuare finché non lo fa (può richiedere da minuti a ore).
Fase 2 · Account
Passo 4: Crea un account GitHub
Crea un account GitHub, verifica l’email e accedi. Annota il tuo username GitHub, lo userai spesso.
Checkpoint. Email verificata, dashboard GitHub accessibile, username salvato.
Passo 5: Crea un account Vercel
Crea un account Vercel con Log in with GitHub, e autorizza Vercel ad accedere all’account GitHub del Passo 4. Non creare ancora il progetto.
Checkpoint. Il tuo account Vercel è collegato a GitHub.
Fase 3 · Strumenti locali
Passo 6: Installa Visual Studio Code
Scarica e installa Visual Studio Code dal sito ufficiale (macOS, Windows o Linux). Aprilo una volta per confermare che parte, poi chiudilo.
Se sei su macOS. Abilita il comando code che userai dopo: apri VS Code,
premi Cmd+Shift+P, scrivi Shell Command: Install 'code' command in PATH ed
eseguilo.
Checkpoint. VS Code si apre correttamente.
Passo 7: Installa Git
Installa Git (macOS: xcode-select --install o l’installer ufficiale; Windows:
Git for Windows; Linux: il tuo package manager). Poi, in un terminale:
git --version
Checkpoint. Stampa una versione, per esempio git version 2.50.0. Non
continuare se il comando non viene riconosciuto.
Passo 8: Installa Claude Code
Installa Claude Code seguendo le istruzioni ufficiali per il tuo sistema operativo, poi verifica:
claude --version
Checkpoint. Stampa la versione installata. Non continuare finché Claude Code non parte correttamente.
Fase 4 · Identità Git e accesso a GitHub
Passo 9: Configura la tua identità Git
Imposta il nome e l’email che Git allega ai tuoi commit. Usa la stessa email del tuo account GitHub:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Cosa fa. Ogni commit porta questa identità. Che l’email coincida con il tuo account GitHub è ciò che collega i tuoi commit al tuo profilo.
Checkpoint. Questi stampano i valori appena impostati:
git config --global user.name
git config --global user.email
Passo 10: Configura l’accesso SSH a GitHub
Questo è l’unico passo davvero fastidioso. Permette al tuo computer di fare push
su GitHub senza password. Genera una chiave (Invio per accettare la posizione
predefinita, ~/.ssh/id_ed25519):
ssh-keygen -t ed25519 -C "you@example.com"
Avvia l’agente SSH e aggiungi la chiave:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Mostra la chiave pubblica e copia tutto l’output:
cat ~/.ssh/id_ed25519.pub
Su GitHub: Settings → SSH and GPG keys → New SSH key, dai un titolo, incolla la chiave pubblica e salva. Poi testa:
ssh -T git@github.com
La prima volta, scrivi yes per confermare.
Cosa fa. SSH prova l’identità del tuo computer a GitHub con una coppia di chiavi, così i push vengono autenticati automaticamente e in sicurezza.
Checkpoint. Vedi:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Se fallisce. Se vedi Permission denied (publickey), controlla se l’agente ha
la tua chiave:
ssh-add -l
Se non compare nessuna identità, aggiungila di nuovo con ssh-add ~/.ssh/id_ed25519 e riprova. Se continua a fallire, copia l’errore esatto in
Claude Code e chiedigli di spiegare il problema SSH prima di eseguire qualsiasi
comando correttivo, e di non cambiare impostazioni non correlate.
Passo 11: Crea il repository su GitHub
Su GitHub, crea un nuovo repository privato chiamato WEBTest, senza
README, senza .gitignore e senza license (vuoto). Crealo, poi copia e
salva le URL che mostra:
git@github.com:username/WEBTest.git # SSH
https://github.com/username/WEBTest.git # HTTPS
Cosa fa. Partire vuoto evita un commit iniziale inutile dal lato di GitHub e
rende pulito il primo push dal tuo progetto locale, senza conflitti da mergiare.
Usa solo il branch main per questo test minimo.
Checkpoint. Esiste un repository privato e vuoto WEBTest e ne hai copiato
l’URL SSH.
Fase 5 · Il progetto
Passo 12: Crea la cartella locale del progetto
In un terminale, vai dove tieni i progetti, crea la cartella, entra e aprila in VS Code:
cd ~/Documents
mkdir WEBTest
cd WEBTest
code .
Se code . fallisce. Conferma che il comando esiste con code --version. Se
non viene riconosciuto, apri VS Code manualmente e usa File → Open Folder per
aprire la cartella WEBTest (utenti macOS: vedi la nota su code nel Passo 6).
Passo 13: Apri Claude Code
Apri il terminale integrato in VS Code (View → Terminal) e conferma di essere dentro la cartella del progetto:
pwd
L’output dovrebbe finire con /WEBTest (in PowerShell, pwd funziona
ugualmente). Poi avvia l’agente:
claude
Passo 14: Invia il prompt del progetto
Incolla questo prompt in Claude Code, sostituendo username con il tuo vero
username GitHub:
Create a minimal Astro website in the current folder.
Requirements:
- Use Astro.
- Create a simple home page.
- Display the visitor’s current local time.
- Update the time client-side every second.
- Add a clear page title.
- Keep the design minimal.
- Make the project compatible with Vercel.
- Initialize Git.
- Use main as the default branch.
- Add this GitHub remote: git@github.com:username/WEBTest.git
- Run the production build and fix any build errors.
- Commit the initial project.
- Push the project to main.
- Verify that the repository contains the project files.
- Report every command executed.
- Stop and explain the error if any command fails.
- Do not continue past a failed check.
Approvare le azioni. Claude Code può chiedere il permesso prima di eseguire un comando. Leggi prima il comando. Non approvare nulla che non capisci e che modifica file fuori dalla cartella del progetto o cambia la configurazione di sistema. Rivedi i file generati prima di continuare.
Fase 6 · Esegui in locale, builda e fai push
Passo 15: Esegui e builda il sito
Installa le dipendenze se l’agente non l’ha già fatto, poi avvia il server di sviluppo:
npm install
npm run dev
Astro stampa una URL locale, di solito http://localhost:4321. Aprila e verifica
che la pagina si carichi, che il titolo sia visibile, e che l’ora appaia e
scorra.
Cosa fa. npm run dev avvia un server di sviluppo che ricarica in tempo reale
mentre modifichi. Resta in esecuzione e occupa il terminale: premi Ctrl+C per
fermarlo.
Ora conferma che builda anche per la produzione (un server di sviluppo che funziona non garantisce un build che funziona):
npm run build
Checkpoint. Il build finisce senza errori. Non fare push finché non ci riesce.
Passo 16: Verifica il remote di Git
git remote -v
git branch --show-current
Checkpoint. Il remote punta al tuo repo WEBTest, e il branch è main.
Passo 17: Fai push del progetto su GitHub
Claude Code potrebbe aver già fatto commit e push nel Passo 14. Questo passo lo verifica e ti dà i comandi per finire a mano se serve:
git status
Se dice nothing to commit, working tree clean, le tue modifiche locali sono
committate. Se ci sono file non committati, committali prima:
git add .
git commit -m "Initial Astro website"
In ogni caso, esegui il push per assicurarti che il branch sia su GitHub (un working tree pulito significa committato, non necessariamente pushato):
git push -u origin main
Cosa fa. git push manda i tuoi commit locali su GitHub.
Checkpoint. Apri il repo su GitHub e conferma di vedere package.json,
astro.config.mjs, src e public.
Fase 7 · Deploy su Vercel
Passo 18: Importa il repository in Vercel
In Vercel: Add New → Project, trova il repo WEBTest e fai Import. Vercel
dovrebbe rilevare Astro da solo. La configurazione attesa è:
Framework Preset: Astro
Build Command: npm run build
Output Directory: dist
Install Command: npm install
Cosa fa. Vercel si collega al tuo repo GitHub, lo builda nel cloud e hosta il risultato. Non scrivi tu questi valori, li compila Vercel. Se mostra valori diversi, fermati e confrontali con il tuo progetto prima di deployare. Altrimenti scegli Deploy.
Passo 19: Verifica il deploy su Vercel
Aspetta che il deploy finisca. Vercel ti dà una URL come
https://web-test.vercel.app. Aprila e conferma:
Deployment status: Ready
Production URL: carica
HTTPS: valido, senza avvisi
Orologio dal vivo: aggiorna ogni secondo
Finestra privata: funziona
Se non funziona, sistemalo qui prima di continuare. Non toccare il dominio personalizzato finché questa URL non funziona.
Fase 8 · Dominio personalizzato
Passo 20: Aggiungi il dominio personalizzato in Vercel
Nel progetto Vercel: Settings → Domains → Add Domain. Aggiungi
www.example.com e, opzionalmente, la radice example.com.
Cosa fa. example.com e www.example.com sono due hostname diversi. Di
solito vuoi che entrambi raggiungano lo stesso sito, con uno che reindirizza
all’altro come indirizzo canonico, cioè la versione che scegli come URL pubblica
principale. Vercel poi mostra i record DNS esatti che ti servono.
Passo 21: Configura i record DNS in Cloudflare
In Cloudflare, scegli il dominio, apri DNS → Records e crea i record che ha
chiesto Vercel. Uno tipico è un CNAME per www:
Type CNAME
Name www
Target cname.vercel-dns.com
Per la radice, Vercel può chiedere un record A o un altro valore. Nelle interfacce
DNS, @ di solito rappresenta il dominio radice (example.com). Imposta il proxy
su DNS only (la nuvola grigia) durante la validazione iniziale per ridurre le
variabili mentre Vercel provisiona HTTPS. Salva.
Importante. I valori DNS in questa guida sono esempi. I valori mostrati nel tuo progetto Vercel sono la fonte di verità. Non inventare valori.
Passo 22: Verifica il dominio personalizzato
Di nuovo nelle impostazioni dei domini di Vercel, aspetta che confermi che la
configurazione è valida. Poi apri https://www.example.com e https://example.com
e verifica: il sito carica, HTTPS funziona senza avvisi di certificato, viene
mostrato il progetto corretto, e radice e www risolvono bene.
Cosa fa. I cambiamenti DNS non sono visibili ovunque in una volta. Resolver diversi si aggiornano in momenti diversi, quindi un dispositivo può vedere la nuova configurazione prima di un altro. Non dare per scontato che sia corretto perché hai aggiunto i record, controllalo nel browser.
Il tuo sito è ora online. Il setup iniziale è completo, questo era l’obiettivo principale. I passi 23 e 24 sono il ciclo di manutenzione: come cambiare il sito in sicurezza e verificare ogni deploy. Continua quando sei pronto.
Fase 9 · Cambiarlo e continuare a verificare
Passo 23: Fai modifiche future
Per cambiare il sito in seguito, apri la cartella WEBTest, esegui claude e
dagli un prompt riutilizzabile come questo:
Inspect the current project before editing anything.
Add a contact section to the home page.
After implementing the change:
- Run the local checks.
- Run the production build.
- Fix any detected errors before continuing.
- Review the diff.
- Commit the change.
- Push to main.
- Wait for the Vercel deployment.
- Verify the production website.
- Report the production URL and any detected problems.
Do not consider the task complete only because the push succeeded.
Passo 24: Verifica ogni deploy
Questa è l’abitudine che separa “ho fatto push” da “funziona”.
PUSH ≠ DEPLOY ≠ WORKING WEBSITE
Dopo ogni aggiornamento, conferma la cosa reale:
[ ] La URL di produzione risponde
[ ] L'ultima modifica è visibile
[ ] I link funzionano
[ ] Nessun errore critico in console
[ ] Funziona su desktop
[ ] Funziona su mobile
Non considerare mai un aggiornamento fatto solo perché il codice è arrivato su GitHub. Il sito stesso deve essere verificato.
Cosa è appena successo
Hai collegato un dominio tramite Cloudflare, configurato GitHub con SSH, creato e deployato un sito Astro con Claude Code, messo sul tuo dominio con HTTPS, e imparato il ciclo per cambiarlo in sicurezza. Ecco come si collegano i pezzi:
Due percorsi si incontrano in Vercel: il tuo codice sale dal tuo computer, e il tuo dominio scende dal registrar.
PERCORSO DEL CODICE PERCORSO DEL DOMINIO
Il tuo computer + Claude Code Registrar (proprietario della registrazione)
| |
v v
GitHub (conserva il codice) Cloudflare (gestisce il DNS)
| |
v v
\___________ Vercel _____/
(builda e hosta il sito)
|
v
yourdomain.com
L’agente ha fatto il lavoro deterministico e ben documentato: scaffolding, Git, deploy. Tu hai tenuto le parti che servono un umano: gli account, le decisioni, e il controllo che ciò che hai pubblicato funzioni davvero.