Assemblage / Docs

A site is a folder, and publishing means syncing that folder to an address. Everything here follows from that. If you want the feel of it first, read how it works. This page is the reference.

The shape of a site

A site is any folder with an index.html. Subfolders become sub-pages, so about/index.html serves at /about. Images, writing, and video sit right there beside the pages. That folder on your disk is the whole site.

If your folder has a build step, that works too. Assemblage runs the build and ships the output. It never guesses silently, so you always see what it decided.

Static sites only

Assemblage serves static files. Pages, images, video, and the JavaScript that runs in your visitor’s browser. There is no server running your code, so server rendering, API routes, and server functions will not run here. Plain HTML and static site builders like Astro, Vite, and Eleventy are the sweet spot.

If a build looks like it needs a server, Assemblage says so before publishing, tells you which parts will not run, and lets you publish the static pages anyway or switch the project to a static build first.

The commands

You describe your site to an agent like Claude and it writes the files. Under that, the same handful of commands do the work, and you can run them yourself.

assemblage sites                              # list your sites
assemblage create [name]                      # name optional, one is generated
assemblage rename <site> <new-name>           # input tidied, "My Site!" becomes my-site
assemblage status  <folder> --site <site>     # what changed since last publish
assemblage preview <folder> [--port N]        # resolve and serve locally
assemblage publish <folder> --site <site>     # build if needed, upload changes, go live
assemblage download <folder> --site <site>    # restore a folder from a site

Anywhere a command takes --site, you can pass the site’s subdomain or name in place of its id.

Publish resolves itself

When you publish, Assemblage looks at your folder, works out what to serve, and says so in one line.

  1. A plain folder with an index.html publishes as-is.
  2. A folder with a build step runs the build, then publishes the output. It knows the common output folders like dist, out, _site, and public.
  3. To settle the guess yourself, add a small site.json.
{ "name": "studio", "dir": "dist", "build": "npm run build" }

You always see a line like Publishing ./dist (built with vite) before anything uploads.

Only changes travel

Every file gets a fingerprint from its contents. Before anything uploads, Assemblage compares your folder to what is already live and sends only what changed. A 400MB film uploads once. Re-publish and it is left untouched. The first publish of a media-heavy site is the only slow one.

Going live and rolling back

Publishing points your address at one saved version of your folder. The switch is instant and all at once, so visitors never catch a half-published site. Every publish is kept, so rolling back is a matter of pointing the address at an older version, with no rebuild.

Your address

Every site is live at {name}.assemblage.place the moment you publish, and you can rename it anytime. When it feels real, bring your own domain.

Back home · How it works · Domains · Pricing