Overview

baudelaire build writes a plain folder of static files to public/, the dist directory from config, overridable with --out. There is no server to run.

There are two ways to publish it: the built-in baudelaire deploy command, which uploads the files to a destination you configure, or handing public/ to any static host or CI pipeline.

The deploy command

baudelaire deploy builds the site first (so a run always reflects the current sources) then reconciles the configured destination with public/: it uploads new or changed files, skips unchanged ones, and (unless told otherwise) deletes what the build no longer produces.

baudelaire deploy --dry-run   # show the plan, write nothing
baudelaire deploy             # confirm, then upload and delete
baudelaire deploy --yes       # skip the confirmation

Pick a backend by adding a deploy block to config.kdl: an S3-compatible bucket or an SSH host. Credentials never live in config: each backend reads them from the environment (or a prompt) at deploy time.

NOTE

No backend configured? baudelaire deploy says so rather than doing nothing: hand public/ to a static host instead.

Preview builds

Point the canonical URL at the preview host so feeds and the sitemap use the right absolute links:

baudelaire build --base-url "https://preview.example.com"

Because builds are incremental, caching the .baudelaire/ directory between CI runs makes rebuilds near-instant.

Announcing is not deploying

baudelaire announce uploads none of public/. It broadcasts your site’s metadata to the AT Protocol via standard.site. Deploy the files with one of the methods here, then see Announcing.