---
title: Contributing
slug: contributing
---

## How it works

- Flat files
  - enhanced markdown for content
  - [YAML frontmatter](https://learn.getgrav.org/15/content/headers) for metadata
- Continuous integration using [GitLab](https://m3p2.ljbac.com)
- Decentralized versioning using [Git](https://en.wikipedia.org/wiki/Git)
- HTML generation using Grav (PHP)


## Data Flow

```mermaid

graph LR

User(Teacher)
Website[M3P2 Website]
Local[Local Website]
Git[Git]
GitLab[GitLab]

User --> |contributes via| Git
User --> |contributes via| GitLab
User --> |contributes via| Local

Local --> |triggers| Git
Git --> |triggers| GitLab
GitLab --> |updates| Website

```