Docs
Snel aan de slag
Voer in een gebouwd project één opdracht uit. Geen account nodig: de site duurt 6 uur, tenzij je inlogt en hem claimt.
npx lobsite
De map is het argument, dir in lobsite.toml, of de eerste die bestaat van dist/, build/, out/, _site/, public/. Alleen gewijzigde bestanden worden geüpload.
AI-agents
Codeeragents (Claude Code, Cursor, Codex en andere) deployen met dezelfde opdracht. Onder een agent stelt de CLI nooit een vraag, en de uitvoer eindigt met een regel ‘Tell the user:’ met de URL en, voor een site zonder account, de claimlink waarmee je hem houdt.
npx -y lobsite --yes
Er is ook een MCP-server voor codeeragents, een externe voor ChatGPT en Claude.ai, en een curl-opdracht voor sandboxes zonder Node. Stel je agent in.
Slepen en neerzetten
Log in en sleep een map of een zip ergens naar het dashboard. Voordat er iets wordt geüpload, lopen dezelfde controles; geheime bestanden worden altijd weggelaten.
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"
Onbekende sleutels zijn een fout, met de dichtstbijzijnde geldige sleutel als suggestie. De configuratie gaat met elke deploy mee, dus een rollback herstelt hem.
Single-page-apps
Apps met routing aan de clientkant, zoals React Router, Vue Router of TanStack Router, hebben één index.html en tekenen elke pagina in de browser. Wie /dashboard/settings direct opent of herlaadt, vraagt de server om een bestand dat niet bestaat. De single-page-modus beantwoordt die paden met je index.html, en de router van de app neemt het over. Er zijn drie manieren om hem aan te zetten:
spa = trueinlobsite.toml. Het gaat met elke deploy mee, dus een rollback herstelt het. Vereist lobsite 0.1.8 of nieuwer; oudere versies stoppen met ‘Unknown key’.- Single-page-app in de instellingen van de site in het dashboard. Dat is de manier voor sites die je met slepen en neerzetten uploadt, want een gesleepte map stuurt geen
lobsite.tomlmee. Het is een site-instelling, dus die blijft hetzelfde bij deploys en rollbacks. - Een
200.htmlbovenaan de site. Die wordt geserveerd in plaats vanindex.htmlen werkt met elke CLI-versie en met slepen en neerzetten. Zo doet Surge het.
Met Vite (React, Vue, Svelte of Solid) voeg je de instelling toe en deploy je dist/ zoals gewoonlijk:
npm run build
npx lobsite
Alleen paginaverzoeken krijgen de app: een pad waarvan het laatste deel geen extensie heeft (/dashboard, /users/42), of elk verzoek van een browser die om HTML vraagt (/users/jane.doe). Een ontbrekend bestand zoals /assets/index-3f9a.js krijgt een echte 404. Dat telt direct na een deploy: een bezoeker die de oude versie nog open heeft, krijgt een duidelijke fout voor het oude script, niet je HTML in plaats daarvan.
| De site heeft | Een ontbrekende pagina (/dashboard) |
Een ontbrekend bestand (/old.js) |
|---|---|---|
| niets | ‘Not found’ van Lobsite, 404 | ‘Not found’ van Lobsite, 404 |
404.html |
404.html, 404 |
404.html, 404 |
| single-page-modus | index.html, 200 |
‘Not found’ van Lobsite, 404 |
single-page-modus en 404.html |
index.html, 200 |
404.html, 404 |
200.html (met of zonder de instelling) |
200.html, 200 |
404.html als die er is, anders ‘Not found’, 404 |
Kom je van Netlify, dan is de _redirects-regel /* /index.html 200 gelijk aan spa = true; kom je van Vercel, dan is een rewrite van /(.*) naar /index.html hetzelfde.
.lobsiteignore
Bestanden die passen op een patroon in .lobsiteignore worden niet gedeployd. De syntaxis is dezelfde als bij .gitignore:
drafts/
*.psd
/notes.txt
!keep.psd
Het bestand wordt gelezen uit de gedeployde map en uit de projectbasis (naast lobsite.toml); patronen in het bestand in de basis zijn relatief aan de basis. .git, node_modules, .DS_Store en .lobsiteignore zelf worden altijd weggelaten.
Geheime bestanden (.env*, privésleutels zoals *.pem en id_rsa, .npmrc, .netrc en dergelijke) stoppen een deploy tot ze verwijderd of genegeerd zijn. In een terminal biedt de CLI aan ze aan .lobsiteignore toe te voegen en zonder ze te deployen.
Formulieren
<form action="/_lobsite/forms/contact" method="POST">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>
Formulieren worden bij de deploy gevonden. Spambescherming (een honeypot, tijdcontrole en limieten) wordt voor je toegevoegd. Inzendingen komen binnen op de pagina Inzendingen in je dashboard en in je e-mail. Meer over formulieren: voorbeelden, verzenden met JavaScript, frameworks en instellingen.
Op het gratis abonnement draaien formulieren in beperkte modus: een maandelijks quotum per site, meldingen alleen naar het e-mailadres van je account, en geen webhooks. Het Standard-abonnement voegt webhooks toe, elk geverifieerd meldingsadres en een hoger quotum.
Eigen domeinen
Eigen domeinen horen bij elk account, ook het gratis abonnement. lobsite domain add www.example.com drukt het record af dat je moet toevoegen: een CNAME naar cname.lobsite.app. Certificaten worden voor je uitgegeven en vernieuwd. Heeft een ander account het domein ook toegevoegd, dan bewijst een TXT-record dat het van jou is.
Voorbeelden en terugdraaien
Elke deploy heeft een eigen URL, <id>--<site>.lobsite.app. lobsite deploy --preview laat productie met rust; lobsite rollback en lobsite promote wisselen de live deploy zonder iets te uploaden.
CLI
lobsite [dir] | Een map deployen (de standaardopdracht) |
lobsite deploy --preview | Uploaden zonder productie te wijzigen |
lobsite deploys | Bewaarde deploys tonen |
lobsite rollback [id] | Een eerdere deploy live zetten |
lobsite promote <id> | Elke deploy live zetten |
lobsite login / logout / whoami | Je account |
lobsite claim [site] | Een anonieme site houden |
lobsite account [use <email>|me] | Overschakelen naar een account waar je lid van bent |
lobsite token create|ls|revoke | CI-tokens voor LOBSITE_TOKEN (Standard) |
lobsite ls / open / rm | Je sites |
lobsite domain add|status|rm | Eigen domeinen |
lobsite forms ls / export <name> --csv | Formulierinzendingen |
lobsite mcp | Een MCP-server voor AI-agents |
Limieten
| Anoniem | Free | Standard | |
|---|---|---|---|
| Sites | Geen plafond | 1 | 5 |
| Bestanden per site | 100 | 100 | 10.000 |
| Per bestand | 5 MB | 5 MB | 100 MB |
| Grootte van de site | 50 MB | 50 MB | 2 GB |
| Opslag | — | 1 GB | 20 GB |
| Deploys per uur | 10 | 30 | 100 |
| Deploys per dag per site | 3 | Geen plafond | Geen plafond |
| Deploygeschiedenis | Live deploy only | 7 days | 30 days |
| Eigen domeinen per account | — | 1 | 5 |
| Eigen domeinen per site | — | 1 | 1 |
| Bandbreedte | 1 GB | 10 GB | Unlimited, fair use |
| Formulierinzendingen per maand | — | 25 | Unlimited |
| Statistieken | — | — | Yes |
| Automatiseringen (Zapier, n8n) | — | — | Yes |
| ‘Powered by lobsite!’-badge | 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.