# portal documentation Portal turns a Git repo of YAML into a running site. Almost everything here is about that YAML: what a content repo may say, and what the engine does with it. | | | |---|---| | [Getting started](getting-started.md) | Bringing your people in: from an empty Kanidm to everyone at their own desk, from what the content says. | | [Architecture](architecture.md) | What the engine is made of and where each piece lives in the source. | | [Content reference](content-reference.md) | Every key a content repo may write, and what it does. | | [State machines](state-machines.md) | `aggregates.yaml`: stages, who moves a case, mail, deadlines, memberships. | | [Access](access.md) | How the Cedar policy is compiled from content, and who may ask it what. | | [Storylines](storylines.md) | The same site told several ways: lists of texts, one storyline per visitor, counted per storyline. | | [Memberships](memberships.md) | Groups kept by portal itself: a membership as a case, a person as a phone number first, and the provider only saying who. | | [Operations](operations.md) | Releasing, deploying, adding a site, environment variables. | | [Training a site](training.md) | `portal plan` and `portal build`: a business in plain words becomes a content repo, held to the lint. | | [The lint](lint.md) | `portal lint`: what a content repo's CI runs before anything reaches a site. | | [Filesystem routes](design/filesystem-routes.md) | Why the `questions/` tree is the router. | One repo in the same family carries its own docs: - [uhhm/gdo](https://project.uhhm.no/uhhm/gdo) — the mailer. Delivers what content asked to be sent, and carries replies back. The lint (once uhhm/iris) and the trainer (once uhhm/portal-trainer) are commands of the `portal` binary since 0.6; their chapters are above, and the trainer's runs stay in the old repo.