# PeltyCMS developer docs

These pages are generated by `make docs` (the `pelty-docs` crate) from the code itself: the router, the OpenAPI schema, the event registry, the WASM runtime types, the WIT world, the UI schema, the config loader, the migrations directory and the example addon in `extensions/examples/addon-guide`. If a page and the code disagree, the generator is wrong. Please report it as a bug.

| What | Count |
|---|---|
| HTTP routes | 795 |
| …with a hand-written schema | 638 |
| Events (domain + pre) | 38 |
| Environment variables | 32 |
| Migrations | 104 |
| Version | 0.1.0 |

## Start here

- [Getting started](getting-started.md): run PeltyCMS locally and build the docs.
- [Write a plugin in Rust](plugin-rust.md): a complete addon, feature by feature, using code that CI compiles and tests.
- [Events and hooks](events-guide.md): listen to events, cancel or modify them, and emit your own.
- [Addon UI](ui-guide.md): native pages, iframe pages and slots.

## Reference

- [HTTP API](api.md): every registered route (`api.json` is the OpenAPI 3 document).
- [Event registry](events.md), [hooks and mixins](hooks.md), [capabilities](capabilities.md), [addon.json manifest](manifest.md), [WIT / ABI](wit.md), [UI schema](ui.md).
- [Configuration](configuration.md), [CLI](cli.md), [database migrations](migrations.md).

## Machine-readable files

- [api.json](api.json): OpenAPI 3 document, every registered route
- [routes.json](routes.json): route inventory (path, method, handler, source)
- [events.json](events.json): event registry
- [emit-sites.json](emit-sites.json): where each event is emitted (file:line)
- [slots.json](slots.json): UI injection points per page
- [plugin-api.json](plugin-api.json): capabilities, hooks, mixins, manifest fields, UI schema
- [env.json](env.json): environment variables
- [migrations.json](migrations.json): database migrations

