# `MishkaCmsBuilder.Application`
[🔗](https://github.com/mishka-group/mishka_cms_builder/blob/v0.0.1-alpha.2/lib/mishka_cms_builder/application.ex#L5)

The builder's OTP application. It supervises the processes the visual editor keeps (the open
sessions, their history, the rendered palette-card previews and the presence of the people in a
session) and every mishka_installer plugin the package ships (`plugins/0`): the sidebar page, the
editor's address, the snippet installer, the activity source, the settings and the history release
of a deleted draft. A plugin registers on the event it listens on once it is supervised here.

None of the processes needs the repo at init (each is an ETS table or Presence), so the application
can start before the host's repo. `MishkaCmsBuilder.Presence` needs `MishkaCmsCore.PubSub`, which
`:mishka_cms_core` starts first.

# `plugins`

```elixir
@spec plugins() :: [module()]
```

Every mishka_installer plugin this package ships, all of which `start/2` supervises. A plugin left
out of it never registers, so the event it listens on never reaches it.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
