Getting Started with Midas

How to install, set up, and start building your site

This guide walks you through installing Midas and creating your first site.

Installation

Midas requires Python 3.9 or newer. Install it from PyPI:

pip install midas-ssg

For development, install in editable mode so changes take effect immediately:

git clone https://github.com/vike256/midas.git
cd midas
pip install -e .

This installs the midas command-line tool.

Create a new site

Run midas init to scaffold a project into the current directory. The directory must be empty:

midas init

Or scaffold into a new folder:

midas init my-blog
cd my-blog

Project layout

After midas init, your project looks like this:

my-blog/
├── midas.yaml          # Site configuration
├── style.css           # Optional CSS overrides (empty by default)
├── content/            # Your markdown content
│   ├── index.md        # Homepage
│   ├── posts/          # Blog posts
│   └── img/            # Images (copied as-is to dist/)
└── static/             # Other static assets (favicons, fonts, etc.)

The built site is written to dist/.

Preview your site

Start the built-in development server:

midas serve

Open http://localhost:8000 to see your site. The server automatically picks the next available port if 8000 is in use.

Writing content

Blog posts

Create a markdown file in content/posts/:

---
title: "Hello World"
description: "My first post"
date: 2026-05-23
---

Your post content here.

Standalone pages

Any .md file outside posts/ becomes a page. For example, content/about.md becomes /about/.

Homepage

content/index.md with type: home becomes the homepage.

Building for production

When you are ready to publish, run:

midas build

This generates the static site in dist/. Deploy the contents of dist/ to any static host.

Customizing your site

CSS overrides

Edit style.css at your project root. It is loaded after the built-in midas.css, so any rule you write overrides the base. For example, to switch to dark mode:

body {
  background: #1a1a1a;
  color: #fafafa;
}

Template overrides

Create a templates/ folder and drop in only the files you want to override. For example, to customize the homepage:

mkdir templates
cp $(python -c "import midas; print(midas.__file__)")/../templates/home.html templates/

Then edit templates/home.html. When you run midas build, you will see a warning that the template is overridden and will no longer receive automatic updates.

Configuration

Edit midas.yaml to set your site name, URL, social links, and more:

site:
  url: "https://example.com"
  name: "My Site"
  description: "A personal website"

home:
  name: "Your Name"
  bio: "A short description about you."
  profilePic: "/img/profile.webp"
  socials:
    - name: github
      url: "https://github.com/yourusername"

Multilingual sites

Add languages in midas.yaml:

languages:
  default: en
  additional: [fi]

Then create content in content/fi/posts/ for Finnish posts. Frontmatter language takes priority over folder inference.

Other commands

Command Description
midas clean Delete the dist/ folder

That is everything you need to get started. Now go build something.