Getting Started

Prerequisites

  • Node.js (v20+)
  • Python (3.10+)

Create a new site

Initialize a project and install @andy34g7/mettu:

mkdir my-site && cd my-site
npm init -y
npm install @andy34g7/mettu

Add the mettu CLI scripts to your package.json:

{
  "name": "my-site",
  "private": true,
  "scripts": {
    "dev": "mettu dev",
    "build": "mettu build",
    "preview": "mettu preview",
    "new": "mettu new",
    "check": "mettu check",
    "clean": "mettu clean"
  },
  "dependencies": {
    "@andy34g7/mettu": "^2.0.0"
  }
}

Minimal directory layout

my-site/
├── config.yaml
├── package.json
├── assets/
│   └── css/
│       └── main.css
├── content/
│   └── index.md
└── public/          # Optional static files (CNAME, robots.txt, favicon.svg)

Create assets/css/main.css so Tailwind CSS v4 and DaisyUI v5 are wired up:

@import "./generated.fonts.css";
@import "tailwindcss";
@plugin "@tailwindcss/typography";
@import "./generated.daisyui.css";

Create a minimal config.yaml:

site_name: "My Site"
author: "Your Name"
base_url: "https://example.com"

theme:
  default: "dim"
  include:
    - "dim"
    - "light"

Run the dev server

npm run dev

On first run, mettu creates a local .venv/, installs its Python requirements, generates your theme/font/syntax CSS, and starts Vite with live reload.

When you're ready for production:

npm run check
npm run build

Your static site is written to dist/.