Documentazione
Avvio rapido
In un progetto già compilato, esegui un comando. Non serve un account: il sito dura 6 ore, a meno che tu non acceda e lo rivendichi.
npx lobsite
La cartella è l'argomento, dir in lobsite.toml, oppure la prima esistente tra dist/, build/, out/, _site/, public/. Vengono caricati solo i file cambiati.
Agenti IA
Gli agenti di programmazione (Claude Code, Cursor, Codex e altri) pubblicano con lo stesso comando. Sotto un agente la CLI non fa mai domande, e il suo output termina con una riga «Tell the user:» con l'URL e, per un sito senza account, il link per rivendicarlo e tenerlo.
npx -y lobsite --yes
C'è anche un server MCP per gli agenti di programmazione, uno remoto per ChatGPT e Claude.ai, e un comando curl per le sandbox senza Node. Configura il tuo agente.
Trascina e rilascia
Accedi e trascina una cartella o uno zip in un punto qualsiasi della dashboard. Prima di caricare qualcosa vengono eseguiti gli stessi controlli; i file segreti sono sempre esclusi.
lobsite.toml
site = "quiet-fox-4821"
dir = "dist"
spa = false # true: paths that aren't files open index.html
[[redirects]]
from = "/blog/:slug"
to = "/posts/:slug"
status = 301 # 301 | 302 | 307 | 308
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[forms.contact]
required = ["email", "message"]
redirect = "/thanks"
Le chiavi sconosciute sono un errore, con il suggerimento della chiave valida più vicina. La configurazione viaggia con ogni deploy, quindi un rollback la ripristina.
App a pagina singola
Le app con routing lato client, come React Router, Vue Router o TanStack Router, hanno un solo index.html e disegnano ogni pagina nel browser. Aprire /dashboard/settings direttamente, o ricaricarla, chiede al server un file che non esiste. La modalità a pagina singola risponde a quei percorsi con il tuo index.html, e il router dell'app prende il controllo. Ci sono tre modi per attivarla:
spa = trueinlobsite.toml. Viaggia con ogni deploy, quindi un rollback la ripristina. Richiede lobsite 0.1.8 o successivo; le versioni precedenti si fermano con «Unknown key».- App a pagina singola nelle impostazioni del sito, nella dashboard. È la via per i siti caricati trascinandoli, perché una cartella trascinata non invia
lobsite.toml. È un'impostazione del sito, quindi resta com'è tra deploy e rollback. - Un
200.htmlnella radice del sito. Viene servito al posto diindex.htmle funziona con qualsiasi versione della CLI e con il trascinamento. È così che fa Surge.
Con Vite (React, Vue, Svelte o Solid), aggiungi l'impostazione e pubblica dist/ come al solito:
npm run build
npx lobsite
Solo le richieste di pagine ricevono l'app: un percorso la cui ultima parte non ha estensione (/dashboard, /users/42), o qualsiasi richiesta di un browser che chiede HTML (/users/jane.doe). Un file mancante come /assets/index-3f9a.js riceve un vero 404. Conta subito dopo un deploy: un visitatore che ha ancora aperta la vecchia versione riceve un errore chiaro per il vecchio script, non il tuo HTML al suo posto.
| Il sito ha | Una pagina mancante (/dashboard) |
Un file mancante (/old.js) |
|---|---|---|
| niente | «Not found» di Lobsite, 404 | «Not found» di Lobsite, 404 |
404.html |
404.html, 404 |
404.html, 404 |
| modalità a pagina singola | index.html, 200 |
«Not found» di Lobsite, 404 |
modalità a pagina singola e 404.html |
index.html, 200 |
404.html, 404 |
200.html (con o senza l'impostazione) |
200.html, 200 |
404.html se c'è, altrimenti «Not found», 404 |
Se arrivi da Netlify, la regola _redirects /* /index.html 200 equivale a spa = true; da Vercel, un rewrite di /(.*) verso /index.html è la stessa cosa.
.lobsiteignore
I file che corrispondono a un pattern in .lobsiteignore non vengono pubblicati. La sintassi è la stessa di .gitignore:
drafts/
*.psd
/notes.txt
!keep.psd
Il file viene letto dalla cartella pubblicata e dalla radice del progetto (accanto a lobsite.toml); i pattern nel file della radice sono relativi alla radice. .git, node_modules, .DS_Store e lo stesso .lobsiteignore sono sempre esclusi.
I file segreti (.env*, chiavi private come *.pem e id_rsa, .npmrc, .netrc e simili) fermano un deploy finché non vengono rimossi o ignorati. In un terminale, la CLI propone di aggiungerli a .lobsiteignore e pubblicare senza di loro.
Moduli
<form action="/_lobsite/forms/contact" method="POST">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>
I moduli vengono individuati al deploy. La protezione antispam (un campo trappola, controlli sui tempi e limiti di frequenza) viene aggiunta per te. Gli invii arrivano nella pagina Invii della tua dashboard e nella tua email. Altro sui moduli: esempi, invio con JavaScript, framework e impostazioni.
Nel piano gratuito i moduli funzionano in modalità limitata: una quota mensile per sito, notifiche solo all'email dell'account e niente webhook. Il piano Standard aggiunge i webhook, qualsiasi indirizzo di notifica verificato e una quota più alta.
Domini personalizzati
I domini personalizzati sono inclusi in ogni account, compreso il piano gratuito. lobsite domain add www.example.com stampa il record da aggiungere: un CNAME verso cname.lobsite.app. I certificati vengono emessi e rinnovati per te. Se anche un altro account ha aggiunto il dominio, un record TXT dimostra che è tuo.
Anteprime e rollback
Ogni deploy ha un suo URL, <id>--<site>.lobsite.app. lobsite deploy --preview non tocca la produzione; lobsite rollback e lobsite promote cambiano il deploy online senza caricare nulla.
CLI
lobsite [dir] | Pubblica una cartella (il comando predefinito) |
lobsite deploy --preview | Carica senza cambiare la produzione |
lobsite deploys | Elenca i deploy conservati |
lobsite rollback [id] | Rimetti online un deploy precedente |
lobsite promote <id> | Metti online qualsiasi deploy |
lobsite login / logout / whoami | Il tuo account |
lobsite claim [site] | Tieni un sito anonimo |
lobsite account [use <email>|me] | Passa a un account di cui sei membro |
lobsite token create|ls|revoke | Token CI per LOBSITE_TOKEN (Standard) |
lobsite ls / open / rm | I tuoi siti |
lobsite domain add|status|rm | Domini personalizzati |
lobsite forms ls / export <name> --csv | Invii dei moduli |
lobsite mcp | Un server MCP per gli agenti IA |
Limiti
| Anonimo | Free | Standard | |
|---|---|---|---|
| Siti | Nessun tetto | 1 | 5 |
| File per sito | 100 | 100 | 10.000 |
| Per file | 5 MB | 5 MB | 100 MB |
| Dimensione del sito | 50 MB | 50 MB | 2 GB |
| Spazio | — | 1 GB | 20 GB |
| Deploy all'ora | 10 | 30 | 100 |
| Deploy al giorno per sito | 3 | Nessun tetto | Nessun tetto |
| Cronologia deploy | Live deploy only | 7 days | 30 days |
| Domini personalizzati per account | — | 1 | 5 |
| Domini personalizzati per sito | — | 1 | 1 |
| Banda | 1 GB | 10 GB | Unlimited, fair use |
| Invii dei moduli al mese | — | 25 | Unlimited |
| Statistiche | — | — | Yes |
| Automazioni (Zapier, n8n) | — | — | Yes |
| Badge «Powered by lobsite!» | Yes | Yes | No |
Bandwidth is per month per account (per site lifetime for anonymous sites). At the limit, free and anonymous sites stop serving until the next month; on Standard there's no cap and sites keep serving: past 1 TB a month, we contact you.