Atelier CMS by AIncient Labs

Host your exported site

Put your static export online — Netlify, Cloudflare Pages, Vercel, GitHub Pages, or any static host

You've exported your site as plain files. Now put it on the web. A static export is ordinary HTML, CSS, images, and assets, so it runs on any static host — pick whichever you already use. The steps below all start from the same folder Atelier produced.

Build the export first

If you run the appliance with the atelier CLI, one command exports your site and drops the files on your machine, ready to deploy:

atelier site export

By default this writes the site to aincient-export/ in the current directory and runs a link check so you know the snapshot is self-contained.

Set your final domain with --base-url. Page canonicals, og: tags, and the sitemap bake in the address you render against. Export for the domain you'll publish to:

atelier site export --base-url https://your-domain.com

For a first test deploy you can skip this and fix it before you point a custom domain at the site.

Tip

Prefer a single file to upload or hand off? atelier site export --zip also packages aincient-export.zip. Add --include-config --include-users for a full "own your data" bundle (see Export a static site).

Re-run atelier site export any time you publish changes and re-deploy — every host below supports that.

Fastest: the deploy template

Don't want to configure a host by hand? The atelier-deploy-template repo is pre-wired for every host below. Put your export in its site/ folder and push — start from any of these one-click links:

The buttons deploy the template's placeholder first; connect the host, then push your export to site/ and it redeploys automatically. Prefer to set a host up by hand? Keep reading.

Netlify

Drag and drop (fastest)

Open app.netlify.com/drop and drop your aincient-export folder onto the page. It's live in seconds on a *.netlify.app address.

Or use the CLI

npm i -g netlify-cli
netlify deploy --prod --dir=aincient-export

Or connect a Git repo

Commit the export to a repo and add a netlify.toml so Netlify serves the folder as-is (no build step — Atelier already built it):

[build]
publish = "aincient-export"

Official docs: Netlify — create deploys · Netlify CLI.

Cloudflare Pages

Direct upload

In the Cloudflare dashboard: Workers & Pages → Create → Pages → Upload assets, then upload the aincient-export folder.

Or use Wrangler

npm i -g wrangler
wrangler pages deploy aincient-export

Or connect a Git repo

Point a Pages project at your repo, leave the build command empty, and set the build output directory to aincient-export.

Official docs: Cloudflare Pages — Git integration · direct upload.

Vercel

Deploy the folder with the CLI

npm i -g vercel
vercel deploy aincient-export --prod

Or connect a Git repo

Import the repo, choose framework preset Other, leave the build command empty, and set the output directory to aincient-export. Optionally commit a vercel.json:

{
  "outputDirectory": "aincient-export"
}

Official docs: Vercel — Git deploys · Vercel CLI.

GitHub Pages

Create a repo and add the files

Copy the contents of aincient-export/ into a new repository. Add an empty .nojekyll file at the root — without it, GitHub Pages' Jekyll step strips folders that start with an underscore.

Deploy with GitHub Actions

Commit this workflow as .github/workflows/pages.yml. It publishes the whole repo (adjust path: if your files live in a subfolder):

name: Deploy to GitHub Pages
on:
  push:
    branches: [main]
permissions:
  contents: read
  pages: write
  id-token: write
jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/upload-pages-artifact@v3
        with:
          path: .
      - id: deployment
        uses: actions/deploy-pages@v4

Turn it on

In the repo, go to Settings → Pages and set the source to GitHub Actions. Your site publishes on each push to main.

Official docs: GitHub Pages — custom Actions workflow.

On a project site the URL includes a subpath (username.github.io/repo). Export with a matching --base-url (e.g. https://username.github.io/repo) so links and canonicals resolve correctly, or use a custom domain.

Any static host

The export is just files, so it works on everything else too — no framework required:

  • Your own server: copy aincient-export/ into your web root (nginx, Apache, Caddy). Point the server at the folder and you're done.
  • Object storage + CDN: sync to an S3 bucket, Cloudflare R2, Google Cloud Storage, etc. and front it with a CDN. For example: aws s3 sync aincient-export s3://your-bucket --delete. Official guides: AWS S3 · Cloudflare R2 · Google Cloud Storage.
  • Anything that serves a folder — even a USB stick or a local python -m http.server for a quick look.

On this page