Plain HTML
The default for small, presentational sites.
STATIC OUTPUTOne copy-and-paste contract turns a website request into built static files your coding agent can validate and publish safely.
THE WHOLE WORKFLOW
You choose what the site says. The standard handles the static package and publishing boundary.
Write what it is for, who it serves, and the information or interactions it needs.
We combine your description with the exact manifest, output, and safety rules.
Your assistant sends only built static files through ZIP, CLI, or MCP.
TRY IT NOW
Be specific about the audience and content. The copied contract tells your agent how to build locally and publish only safe static output.
Good: “Create a one-page site for my ceramics studio with class dates, prices, and an email link.”
Build and publish this as a Small Static Site v1 (small-static-site/1).
The platform accepts only an already-built static artifact. Run dependency installation and build commands locally. Never ask the platform to run source code, npm, a build script, a container, or an application process.
Choose the smallest authoring approach:
1. Default to semantic HTML, CSS, and JavaScript in site/.
2. Use React + TypeScript + Vite only for meaningful browser-side interaction and state.
3. Preserve Next.js, Vue/Vite, or Astro only when the project produces fully static dist/ output. Next must use output: "export"; Astro must use static output.
Supported framework values are exactly: plain, react-vite, next-static, vue-vite, astro-static.
Create small-site.json at the project root. It is a closed manifest: do not add keys. Use spec "small-static-site/1", a 3–48 character lowercase slug for name, basePath "/", no public build variables, and quality.accessibility "WCAG2.2-AA".
For a plain site, use build { "profile": "static-files", "source": "site", "output": "site" }. Include site/index.html and site/404.html.
For a framework site, use build { "profile": "node-static", "runtime": "nodejs-24.18.0", "packageManager": "npm-11.16.0", "install": "npm ci", "command": "npm run build", "output": "dist" }. Build locally and inspect dist/ before publishing.
Use file routing with 404.html by default. Only React/Vite or Vue/Vite may use SPA routing with fallback index.html. Self-host scripts, styles, images, and fonts. External scripts and styles, inline event handlers, form submissions, service workers, WebAssembly, source maps, secrets, private URLs, SSR, API routes, databases, filesystem writes, background jobs, WebSockets, Dockerfiles, and executable files are prohibited.
Declare only exact public HTTPS origins genuinely needed in network.connect, images, media, fonts, or frames. Use empty arrays otherwise. The platform compiles these declarations into Content Security Policy; do not provide raw headers.
The upload ZIP root must contain exactly small-site.json plus the declared site/ or dist/ output. Do not include source files, node_modules, lockfiles, caches, symlinks, nested archives, or files outside the output directory. Limits: 30 MiB ZIP, 25 MiB unpacked, 2,000 output files, and 5 MiB per file.
Before finishing:
- run the local build when applicable;
- verify index.html, routing, local links, assets, metadata, responsive layout, keyboard access, visible focus, reduced-motion behavior, and content accuracy;
- if Small Site tools are available, call small_site_check and then small_site_publish for the supplied site ID;
- otherwise produce the validated ZIP for dashboard upload and explain that it contains static output only.
Do not claim the site is published until the publish tool or dashboard returns an active deployment and stable URL.ONE OUTPUT, FIVE RECIPES
Every recipe builds locally and ends as ordinary static files. The platform never installs dependencies or runs customer source.
The default for small, presentational sites.
STATIC OUTPUTFor meaningful browser interaction and state.
STATIC OUTPUTExisting Next projects, exported without a server.
STATIC OUTPUTA supported client-side alternative.
STATIC OUTPUTFor content-rich, multi-page sites.
STATIC OUTPUTA DELIBERATE BOUNDARY
YOUR NEXT WEBSITE
Turn it into a prompt your agent can build, validate, and publish without touching infrastructure.
Make your prompt