Start here

How it works

Your site is a folder of files. HotDog builds it into web pages, checks them, and publishes them. Here's the whole journey in one page.

Every HotDog site goes through the same four steps, whether you work in files or in the editor.

1. Your site is a folder

A site is a folder on your computer (or in the editor). Inside it:

  • content/ holds your pages, one text file each, written in Markdown.
  • site.yaml holds your site's settings: its name, its address, its menus.
  • static/ holds pictures and other files that are published as they are.
  • The rest (layouts/, sections/, partials/, assets/) is the design. You can leave it alone until you want to change how things look.

The site's folder goes through every part.

2. HotDog builds it

When you run hotdog-cms build (or hotdog-cms serve while you work), HotDog reads every page, puts it into the design, and writes the finished site into a folder called public/. That folder is your website: ordinary web pages, pictures and styles. It also writes the things search engines and feed readers look for, like a sitemap and a news feed.

3. HotDog checks it

Before anything is published, hotdog-cms check reads every finished page the way a careful reviewer would: links that go nowhere, pictures without descriptions, tracking that starts without asking, pages search engines won't understand. Errors stop a publish; warnings are suggestions. See Checks.

4. You publish it

Publishing copies the finished pages to the place people visit: a folder on your web server, a server over SSH, or a container. You can do it with one command, or let your git platform do it every time a change is accepted. See Publishing.

Where git comes in

Your site's folder lives in a git repository, which keeps every version of every file. Each saved change is a commit, with who made it and when. That gives you:

  • A full history. Every change can be looked at, and undone.
  • Drafts. Work happens on a branch, a separate line of changes, so the live site doesn't change until you say so.
  • Reviews. A pull request asks for a draft to be accepted, so someone can look first.

The editor does all of this for you behind the buttons: Save makes a commit on a draft, Submit for review opens a pull request, and Publish accepts it.

Where the editor comes in

The editor is a separate program you run on your computer, or on a server for a team. People sign in with their git platform account, so there are no extra passwords. It never runs on the web server that shows your site to the world, and it only changes your site by committing to its repository. See The editor.

  you or the editor ──commit──▶ git repository ──build + check──▶ public/ ──publish──▶ your web server