Build a static site from a repository
Write pages as Markdown files with templates in a Git repository, and have Magpie build and publish them.
A static site is a website built from files. Choose Static site when you create a website in Website Builder. Magpie creates a Git repository in the selected team, named after the website address, with a starter site in it. Edit the files and push to the repository. Each push to the site's branch builds the site again. Build now on the site's page builds the branch as it is.
Files
| Path | Use |
|---|---|
site.yml |
title, description and language for the whole site. |
content/ |
One page per Markdown (.md) or HTML file. content/about.md is published at /about/; content/index.md is the home page. |
layouts/ |
Templates. layouts/default.html is used when a page names no other. |
static/ |
Copied to the site root as it is, for example static/css/site.css becomes /css/site.css. |
Other files inside content/, such as images, are copied to the same path without content/, so content/images/logo.png is served at /images/logo.png.
Pages
A page can begin with front matter between two --- lines:
---
title: Hello, world
date: 2026-10-04
layout: post
draft: false
---
titledefaults to the file name.dateisYYYY-MM-DD.layoutnames a file inlayouts/. Without it, a page uses the layout named for its folder (content/posts/useslayouts/posts.html), thenlayouts/default.html.draft: trueleaves the page out of the build.slugreplaces the last part of the page's address.
Front matter supports key: value lines, quoted text, numbers, true, false, and lists as
[a, b] or - item lines. A line it cannot read fails the build and names the file and line.
Templates
Templates use Twig. These variables are available:
site:title,description,language,base,url,pages(every page, newest first) andsections(pages grouped by their first folder, such assite.sections.posts).page:title,description,date,url,section, and every other front matter key.content: the page body as HTML.
Start links with {{ site.base }} so they work wherever the site is served. A layout can extend or include
another by name, for example {% extends "default.html" %}.
Templates run with a short list of allowed features. They can use if, for, set, block, extends
and include, and common filters such as date, join, default and sort. Macros, ranges such as
1..10, the block() function and calls to methods are not available, and a layout cannot include itself.
A build that uses one fails and names the layout.
What Magpie adds
404.htmlis built fromlayouts/404.htmlwhen that file exists.feed.xmllists the newest 20 pages incontent/posts/that have a date.sitemap.xmllists every page.
Publishing and download
A site is published with the Published switch on its page. It can be switched on after one build has succeeded. A build that fails keeps its log on the page and does not change the live site, so a mistake in a push does not take the site down. Download ZIP gives the files of the live build.
A build is limited to 2,000 pages, 5,000 repository files, 60 MB in total and 12 MB per file.
A static site is edited in its repository, not in the Website Builder editor. It is not shown in the native app. If a push does not produce a build, Contact support.