WindowsmacOSLinux

Where Does Zola Store Config and Output?

Zola keeps everything in your site folder: config.toml for settings, content for pages, and public as the generated output.

Last updated

Zola stores a site the way a single binary should: one folder, no per-user state anywhere. The config.toml at the root sets the base URL, taxonomies, and build options. Markdown pages live in content, layouts in templates, and untouched assets in static. A sass folder compiles to CSS automatically when present, and multilingual sites repeat the content tree per language.

The public folder is the odd one out. Zola writes the finished site there on every build, so it is output, not source. Treat it like a _site or dist directory: generated, deletable, and excluded from version control.

Where Zola stores this, by platform

Windows
[SiteDir]\config.toml

Site settings, taxonomies, and build flags. Moving the whole site folder carries everything; there is no registry or AppData half to chase.

macOS
[SiteDir]/config.toml

Same in-folder layout on macOS. Drafts only render with zola serve or --drafts, which confuses people hunting for missing pages in the wrong folder.

Linux
[SiteDir]/config.toml

Same arrangement. The public output folder regenerates fully, so back up config.toml and content rather than the built files.

Frequently asked questions

The built site looks outdated. What do I delete?

Delete the public folder and rebuild. It is pure output regenerated from content, templates, and static on every build, so wiping it fixes most stale-output mysteries.

Should the public folder be committed to git?

Yes. Commit config.toml, content, templates, static, and sass. The public folder is build output and belongs in .gitignore alongside editor files.

Notice an outdated path? Let us know.