Contribute

Help shape an open platform for universities across NRW.

On this page

Contribute to git.nrw

We appreciate your interest in contributing to git.nrw! This platform is a collaborative project among universities in North Rhine-Westphalia, built using Hugo. It is designed to provide Open Educational Resources (OER) for the academic community. Your contributions are vital to expanding and improving this platform.

This guide outlines how to contribute, with a focus on course creation, and ensures your contributions are integrated smoothly into the project.

Code of Conduct

We are committed to creating an open and welcoming environment. Please treat everyone with respect and professionalism. Discrimination, harassment, or any form of inappropriate behavior will not be tolerated.

How to Contribute

Prerequisites

Git proficiency

Comfortable with the basics: cloning, branching, committing, and pushing.

Hugo

Our site is built with Hugo. Install it here.

Docker Compose

Used to run the project locally.

Quick Start for Experienced Developers

1

Fork the repository on gitlab.git.nrw/web/git-nrw and clone your fork

2

Start the dev serverdocker compose up

3

Create a branch (e.g. feat/… or fix/…) and make your changes

4

Open a merge request to stage and allow edits from maintainers

For detailed information on content guidelines, licensing, and more, please continue reading below.

Branching Strategy

We follow a clear branching strategy to manage contributions effectively:

Branch Purpose
main The live production site
stage Staging — changes are merged here first for review
feat/* Developing new features
fix/* Fixing bugs
chore/* Routine tasks like dependencies or documentation
courses/* Creating or updating courses

Changes are merged into stage first and promoted to main (the live site) once reviewed.

Examples of branch names: feat/add-search-functionality, fix/login-error, courses/add-git-basics-course

Creating a Course

A detailed guide on creating courses is available directly on the platform . This guide provides comprehensive instructions on structuring your course, writing effective content, and leveraging available features. It also serves as a live example of a course.

Quick Overview

  1. Clone the repository: git clone https://gitlab.git.nrw/web/git-nrw.git
  2. Start development server: docker compose up
  3. Create a new course: hugo new courses/<kebab-style-course-name>/_index.md
  4. Add lessons: Create lesson files in section folders, e.g., hugo new courses/<kebab-style-course-name>/10-getting-started/10-introduction.md
  5. Write your content in Markdown.
  6. Preview your course: http://localhost:1313/en/courses/<kebab-style-course-name>
  7. Commit your changes: git add ., git commit -m "your message", git push
  8. Create a merge request on GitLab.

Images and Media

  • Store images in static/images/courses/<course-name>/.
  • Upload videos to YouTube, Vimeo, or TIB AV-Portal and link them in your course frontmatter using the respective fields (youtube, vimeo, or tibav). Example: youtube: dQw4w9WgXcQ
  • Ensure you have the rights or licenses to use all media.

Content Guidelines

  • Language: Use clear and concise language, avoiding jargon or explaining it when necessary.
  • Formatting: Maintain consistency in Markdown formatting.
  • File names: Use English, kebab-case, and organize lessons in section folders with numeric prefixes (e.g., 10-getting-started/10-introduction.md).
  • Metadata: Fill in all required fields in the frontmatter of your Markdown files.

Multilingual Content

The website is bilingual (German and English). Automatic validations run on merge requests:

  • File extension: All content files must have the .md extension.
  • File names: German and English versions must have identical file names.
  • Frontmatter: For news articles, frontmatter must match (except title and incident fields).

Example correct structure:

content/
├── de/news/2026-01-20-my-article.md
└── en/news/2026-01-20-my-article.md   # Same filename!

Content without translation: If content is not (yet) available in both languages, add translation: pending to the frontmatter:

---
title: "My English-only course"
translation: pending
---

Once the translation is created, remove the field.

Licensing

  • Your content: License your contributions under CC BY.
  • Third-party content: Use only content with appropriate licenses, clearly indicate the license, and adhere to its terms. Courses themselves must be licensed under CC BY.

Contributors

The git.nrw website is built and maintained in the open. Thank you to everyone who has contributed.

Maintainers of this website

Sven Wöhrle
Torben Buck

With contributions from

Abdul Ahad
Lena Becker
Thomas Gerlach
Jelena Gonsior
Tobias Krahe
Maximiliano Lira Del Canto
Martin Pieters
Gorka Ribera
Christian Schild
Contribute too

Support

Questions or stuck?

Our team is happy to help — reach out any time.

Thank you for your contributions and for being part of the git.nrw community!