Quick start
Create a minimal site with optional docs, blog, search and feed support.
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.mdHome 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.