A static site generator built around a **tiny kernel** and a **webpack-style
plugin + lifecycle-hook** architecture. The kernel knows nothing about Markdown,
HTML or templates: every feature is a plugin that taps into lifecycle hooks.

This very site is generated by pyssg itself, using the built-in `docs()` preset.

<div class="features">
  <div class="feature">
    <h3>Tiny, dependency-free kernel</h3>
    <p>The core is pure standard library. It only orchestrates a lifecycle and lets plugins do the work.</p>
  </div>
  <div class="feature">
    <h3>Everything is a plugin</h3>
    <p>Reading files, parsing frontmatter, rendering Markdown, templating, writing to disk - all plugins you can swap or extend.</p>
  </div>
  <div class="feature">
    <h3>One shared content model</h3>
    <p>Permalinks, collections, listings and navigation speak the same vocabulary, so templates only learn site, page, collections and menus.</p>
  </div>
  <div class="feature">
    <h3>Friendly presets</h3>
    <p>docs(), blog() and site() give you a working setup in one line; power users assemble plugins by hand.</p>
  </div>
</div>

## A taste

```python
# pyssg.config.py
from pyssg.config import Config
from pyssg_cli.presets import docs


def config() -> Config:
    return Config(src="content", out="public", plugins=docs())
```

```bash
pyssg build
```

That is the entire setup behind the site you are reading.

## Where to next

- **New here?** Start with [Getting started](/guide/getting-started/).
- **Building pages?** Learn [Templating](/templating/) and the [built-in plugins](/plugins/built-in/).
- **Want the internals?** Read the [Architecture](/architecture/) overview or learn about [writing plugins](/plugins/writing-plugins/).
