This guide creates a small but complete demo site. It assumes you already have a Zola site and the theme installed under themes/devlab-theme.

Configure Zola

Use this as a starting zola.toml:

base_url = "https://example.com"
title = "DevLab"
description = "Developer documentation and technical notes."
theme = "devlab-theme"

compile_sass = true
build_search_index = true
generate_feeds = true
feed_filenames = ["atom.xml"]

[search]
include_title = true
include_description = true
include_content = true

[markdown]

[markdown.highlighting]
light_theme = "github-light"
dark_theme = "github-dark"

[extra]
logo_text = "DevLab"
footer_text = "DevLab"
og_image = ""
theme_default = "system"
theme_toggle = true
docs_section = "docs/_index.md"
docs_path = "/docs/"
get_started_path = "/docs/getting-started/"
blog_path = "/blog/"
search_index = "search_index.en.js"
nav_links = [
  { name = "Home", path = "/" },
  { name = "Docs", path = "/docs/", kind = "docs" },
  { name = "Blog", path = "/blog/", kind = "blog" },
]

Do not need docs or blog yet? Leave docs_section, docs_path, get_started_path or blog_path empty and remove the matching navigation link.

Create content folders

Create the folders used by the default navigation:

mkdir -p content/docs content/blog

The minimal structure should look like this:

content/
  _index.md
  docs/
    _index.md
    getting-started.md
  blog/
    _index.md
    hello.md

Home page

Create content/_index.md:

+++
title = "DevLab"
description = "A developer documentation site."
+++

Build technical documentation and blogs with Zola.

The homepage uses templates/index.html automatically for the root section.

Docs section

Create content/docs/_index.md:

+++
title = "Documentation"
description = "Guides and reference pages."
sort_by = "weight"
template = "docs.html"
page_template = "doc-page.html"

[extra]
nav_groups = [
  { title = "Start", pages = ["docs/getting-started.md"] },
]
+++

Start here.

The template setting controls the docs overview page. The page_template setting controls every page inside the docs section.

Create content/docs/getting-started.md:

+++
title = "Getting started"
description = "Start using the project."
weight = 1
+++

This page verifies that documentation rendering works.

## Requirements

- Zola
- Git

## Local development

Run:

```bash
zola serve
```

Blog section

Create content/blog/_index.md:

+++
title = "Blog"
description = "Release notes and technical articles."
sort_by = "date"
template = "blog.html"
page_template = "blog-page.html"
+++

Create content/blog/hello.md:

+++
title = "Hello DevLab"
description = "First blog post."
date = 2026-06-01
+++

This post verifies that blog rendering works.

Run the site

Start the development server:

zola serve

Check these pages:

  • /
  • /docs/
  • /docs/getting-started/
  • /blog/
  • /blog/hello/

If search is enabled, type at least two characters in the search field. If search is disabled, the search box and search scripts are not rendered.

The build also creates /atom.xml, /404.html and favicon.svg. Search engines and feed readers discover the feed and metadata from the page head.