100% open source MIT licensed PHP 8.4+

Static sites,
quietly crafted.

Documentation out of the box, but Leaf is a full static site generator under the hood. Ship landing pages, marketing, blogs, anything. Themes, search, multi-locale, SEO baked in.

$ curl -fsSL https://leaf.ophelios.com/install.sh | sh

PHP developer? See the Composer path ↓

Leaf documentation preview Leaf documentation preview
Features

Everything you need.
Nothing you don't.

Leaf handles the build pipeline, SEO, search, and theming so you can focus on content.

00 · Positioning

Documentation out of the box.
Anything static, under the hood.

The default scaffold gets you polished documentation in minutes. That's the fast path. But Leaf is a full static site generator underneath. Ship a landing page, a marketing site, a blog, and drop into a PHP controller when a page needs more. One pipeline. One deploy.

Docs out of the box Landing pages Marketing sites Blogs Custom PHP
01

One-command builds

Run leaf build (or composer build if you're on the PHP path) and get a fully static site in dist/. Ready for Netlify, Vercel, GitHub Pages, or any web server.

02

Markdown content

Front matter, GFM tables, fenced code blocks. Syntax highlighting via Prism.js with automatic copy buttons on every block.

03

Multi-locale, out of the box

Default locale at root, others in subdirectories. Automatic hreflang tags and sitemap alternates. No plugin gymnastics.

04

Client-side full-text search

Fuzzy search across every page with zero backend. ⌘K to open, arrow keys to navigate, instant results.

05

SEO & structured metadata

Automatic sitemap.xml, robots.txt, canonical URLs, OpenGraph tags. Everything crawlers expect, nothing you have to remember.

06

Light & dark themes

Both themes polished and production-ready. Respects system preference, with a manual toggle and smooth transitions across every component.

For PHP developers

Need more? Drop into PHP.

The binary covers most sites. If you want controllers, Composer packages, or to own the build pipeline, the Composer path is the escape hatch. Same zephyrus-leaf-core, full PHP surface.

$ composer create-project zephyrus-framework/leaf my-docs
  • Own the build pipeline bin/build.php is a single file you can read and edit.
  • Add controllers, routes, packages Anything you can do in a Zephyrus app, you can do here.
  • Started on the binary? leaf eject Converts your project to the Composer tier in one command.
bin/build.php
$app = new Application();
$command = new BuildCommand($app);

// Add blog posts as build paths
$command->addPaths(['/blog', '/blog/my-post']);

// Custom post-build step
$command->onPostBuild(function ($result, $outputDir) {
    echo "Built {$result->pagesBuilt} pages!" . PHP_EOL;
});

exit($command->run());
Quick start

Up and running
in thirty seconds.

  1. Install the CLI

    One binary per platform. No PHP or Composer on your machine.

    curl -fsSL https://leaf.ophelios.com/install.sh | sh
  2. Scaffold and write

    leaf init creates content/, public/, and a config.yml. Drop Markdown files in with front matter to control title and order.

    leaf init my-docs
    cd my-docs
    leaf dev     # live reload on localhost:8080
  3. Build & deploy

    Render every page to static HTML in dist/. Push anywhere: Netlify, Vercel, GitHub Pages, or your own server.

    leaf build
    # dist/ is ready to deploy anywhere

Standing on the shoulders of

  • PHP 8.4
  • Zephyrus
  • CommonMark
  • Prism.js
  • Latte 3
  • Composer

Start writing. Stop configuring.

Open source, MIT licensed, and built to be read. Ship your docs this afternoon.