# Liteshop Site Authoring 0.1 > Create and update portable Liteshop websites. Follow the current capability status exactly; never invent APIs or use planned functionality. ## Current capability status Available now: - Static HTML, CSS, JavaScript, JSON, and local images. - Validated ZIP upload and deployment to a `*.liteshop.me` subdomain. - Immutable Deployments, downloadable versions, and Rollback. - Draft upload, validation, isolated preview, and explicitly approved Publish. - Manual conversational updates using an exported Deployment ZIP. Not available yet: - The Liteshop browser SDK, Forms runtime, availability, and Booking Requests. - Direct ChatGPT or Claude publishing through an authenticated connection. - Payments and visitor accounts. Do not load `/_liteshop/sdk/v1.js`. Do not call any `liteshop.*` method. Do not build a form, availability view, or booking interaction that claims to persist data in Liteshop. Static `mailto:` and `tel:` links are allowed. ## Required ZIP Return one ZIP whose root contains `index.html` and `liteshop.json`. Put supporting files in sensible relative paths such as `assets/`, `styles.css`, and `main.js`. Paths are relative and case-sensitive. Do not include symlinks, absolute paths, `..`, build tools, server code, package directories, environment files, API keys, credentials, or secrets. Allowed bundle content includes HTML, CSS, JavaScript, JSON, JPEG, PNG, WebP, sanitized SVG, and ICO. Use only bundled JavaScript, CSS, and images. Do not use external scripts or stylesheets, frames, service workers, web workers, `eval`, WebSockets, external form targets, or arbitrary network requests. Ordinary `https:`, `mailto:`, and `tel:` links are allowed. ## Manifest Use schema `https://docs.liteshop.me/schemas/site-v0.1.json` and `specVersion` `0.1`. ```json { "$schema": "https://docs.liteshop.me/schemas/site-v0.1.json", "specVersion": "0.1", "site": { "name": "Example Guesthouse", "defaultLocale": "en", "supportedLocales": ["en"], "timezone": "Europe/Paris" }, "frontend": { "entry": "index.html", "notFound": "404.html" }, "capabilities": { "forms": [ { "id": "contact", "name": { "en": "Contact" }, "fields": [ { "id": "email", "type": "email", "label": { "en": "Email" }, "required": true, "maxLength": 254 } ] } ] } } ``` The manifest currently requires a capability declaration for forward compatibility. Declaring the Form does not make its browser runtime available. Do not reference it from frontend JavaScript until the capability status changes. Visitor-facing manifest strings are objects keyed by locale. Every localized string must include the default locale. Static page translations must be written into the HTML; Liteshop does not translate pages at runtime. Identifiers use lowercase kebab case and remain stable across updates. Do not rename an identifier merely to change a visible label. ## Initial creation 1. Read this entire file before writing files. 2. Build a complete responsive static Site from the user's brief and attached assets. 3. Keep every runtime dependency inside the bundle. 4. Create a valid `liteshop.json`. 5. Verify every local reference and link. 6. Return the complete result as one ZIP, not as disconnected code snippets. The Owner uploads the ZIP in Liteshop, chooses a subdomain, and selects **Validate and publish**. ## Updating an exported Site The Owner downloads the current Deployment and attaches its ZIP. Treat that archive as the authoritative source. 1. Preserve its complete file structure and unrelated content. 2. Make only the requested changes. 3. Preserve the exact `baseDeployment` value in `liteshop.json`. 4. Keep all identifiers stable unless the requested behavior genuinely changes the declared entity. 5. Return the complete updated Site as one ZIP. Liteshop rejects an update based on an inactive Deployment. When this happens, ask for a fresh export and reapply the change. ## Validation repair Liteshop diagnostics contain a stable code, JSON-pointer path, plain message, and repair instruction. Apply every stated repair, regenerate the complete ZIP, and do not bypass or weaken the validator. Before returning a ZIP, confirm: 1. `index.html` and `liteshop.json` are at the ZIP root. 2. Every local reference exists with matching case. 3. The manifest matches the published schema. 4. The default locale exists in every localized label. 5. No secret or unsupported runtime dependency is present. 6. No planned Liteshop browser API is used. 7. An update preserves `baseDeployment`. ## Human-readable references - [Create a Site](https://docs.liteshop.me/guides/create-site): Initial generation and dashboard deployment. - [Update a Site](https://docs.liteshop.me/guides/update-site): Portable conversational editing workflow. - [Site Bundle Reference](https://docs.liteshop.me/reference/site-bundle): Archive, manifest, and validation contract. - [Capability Status](https://docs.liteshop.me/reference/capability-status): Authoritative availability of runtime features. - [Manifest JSON Schema](https://docs.liteshop.me/schemas/site-v0.1.json): Machine-readable manifest contract.