# Deploy Eleventy

Eleventy is detected from its dependency and config file, and deploys as a static site: `npm run build` fills `_site/`, and the CDN serves it with [free bandwidth](/billing/pricing#static-sites). No server, no region, no cold starts.

## Build

- **Output directory:** `_site` - Eleventy's default; override in [Build settings](/create/build-settings#output-directory) if your config sets `dir.output` elsewhere.
- **Build command:** whatever your `build` script runs (`eleventy`, or `eleventy && postcss ...` chains).
- **Install:** follows your lockfile - see [How detection works](/platform/frameworks#how-detection-works).

## Environment variables

Eleventy configs and data files are plain Node - read `process.env` freely at build time. Static builds run [with the environment's variables set](/platform/environment-variables#build-time-and-runtime), so data files can fetch from APIs with per-[environment](/platform/preview-environments) credentials.

Values used only at build time never reach the browser unless your templates print them - keep secrets out of rendered output.

## Related

- [Build settings](/create/build-settings): Install, build, and output configuration.
- [Preview environments](/platform/preview-environments): A rendered preview per branch.
- [Custom domains](/platform/custom-domains): Your own hostname on the CDN.
