---
url: /en/docs/frameworks/zola.md
description: >-
  Learn how to integrate Sveltia CMS with Zola, including the admin page setup,
  section configuration, starter templates and real-world examples.
---

# Zola Integration Guide

This guide provides resources and information for integrating Sveltia CMS with [Zola](https://www.getzola.org/), a fast static site generator written in Rust.

## Starter Templates

Here are some starter templates built by the community using Zola:

* [Zola Sveltia Source](https://github.com/unicornfantasian/zola-sveltia-source) by [husenunicorn](https://github.com/husenunicorn)

::: info Disclaimer

These third-party resources are not necessarily reviewed by the Sveltia CMS team. We are not responsible for their maintenance or support. Please contact the respective authors for any issues or questions.

:::

## Examples

See real-world examples of Zola integrations in our [Showcase](/en/showcase?framework=zola). Most of the listed sites include links to their source code, so you can explore how they implemented Sveltia CMS with Zola.

## Setup

### Adding the Admin Page

Zola serves static files from the [`static` folder](https://www.getzola.org/documentation/getting-started/directory-structure/#static). Create `static/admin/index.html` and `static/admin/config.yml` as described in the [Getting Started](/en/docs/start#manual-installation) guide. The admin page is then available at `/admin/` on the development server started with `zola serve` as well as on the built site.

## Configuration

Zola stores content in the `content` folder, where each subfolder with an `_index.md` file is a [section](https://www.getzola.org/documentation/content/section/), and the other Markdown files in it are [pages](https://www.getzola.org/documentation/content/page/). The following example manages the pages of a blog section in `content/blog`:

```yaml [static/admin/config.yml]
media_folder: static/images
public_folder: /images
collections:
  - name: blog
    label: Blog
    folder: content/blog
    format: toml-frontmatter
    create: true
    fields:
      - { name: title, label: Title }
      - { name: date, label: Date, widget: datetime, type: date }
      - { name: description, label: Description, required: false }
      - { name: draft, label: Draft, widget: boolean, default: false }
      - name: taxonomies
        label: Taxonomies
        widget: object
        fields:
          - { name: tags, label: Tags, widget: list, required: false }
      - name: extra
        label: Extra
        widget: object
        required: false
        fields:
          - { name: image, label: Image, widget: image, required: false }
      - { name: body, label: Body, widget: markdown }
```

Some notes on this configuration:

* Zola’s [front matter](https://www.getzola.org/documentation/content/page/#front-matter) is usually written in TOML with `+++` delimiters, so the `format` option is set to `toml-frontmatter`. YAML front matter is also supported by Zola, in which case the option can be omitted.
* Zola accepts a `date` in the `YYYY-MM-DD` or RFC 3339 format. The `type: date` option of the DateTime field saves a date without time. If you need the time as well, remove the `type` option and add `output_utc: true` so the value is saved with a time zone, as required by RFC 3339.
* Taxonomy terms like tags are stored in the `taxonomies` table, using the taxonomy names defined in `zola.toml`, so an [Object](/en/docs/fields/object) field is used to group them. Custom properties go in the `extra` table in the same way.
* The section’s own `_index.md` file is not part of this collection. You can manage it with the [`index_file`](/en/docs/collections/entries/listings#managing-hugo-s-special-index-file) collection option or a [file collection](/en/docs/collections/files).

## Support for Zola

We have implemented specific features to enhance the integration of Sveltia CMS with Zola:

* [Entry-relative media folders](/en/docs/media/internal#using-entry-relative-folders): Store media files in folders relative to their associated entries, following Zola’s [asset colocation](https://www.getzola.org/documentation/content/overview/#asset-colocation) convention.
* [Nested collections](/en/docs/collections/entries/nested): Manage a tree of [sections](https://www.getzola.org/documentation/content/section/) as a folder tree in the sidebar, where each entry is stored as an `_index.md` file in its own folder and can be moved along with its children.
* [Entry redirects](/en/docs/collections/entries/previews#redirects): Out-of-the-box support for Zola’s [`aliases` front matter property](https://www.getzola.org/documentation/content/page/#front-matter), which is updated when the entry slug is changed in Sveltia CMS.
* [Manual entry reordering](/en/docs/collections/entries/operations#reordering-entries): Use the `reorder` option to add the [`weight` property](https://www.getzola.org/documentation/content/section/#weight) to entries for controlling their order in Zola.
* The [`value_type`](/en/docs/fields/number#value-type) number field option supports `int/string` and `float/string` value types, which are useful for Zola sites that store numbers as strings in front matter. ([Discussion](https://github.com/sveltia/sveltia-cms/issues/574))
* The [`omit_default_locale_from_file_path`](/en/docs/i18n/options#top-level-configuration) i18n option allows omitting the locale suffix from filenames for entries in the default locale, which is useful for [multilingual Zola sites](https://www.getzola.org/documentation/content/multilingual/). ([Discussion](https://github.com/sveltia/sveltia-cms/discussions/394))
