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.
Docker Compose
Used to run the project locally.
Quick Start for Experienced Developers
Fork the repository on gitlab.git.nrw/web/git-nrw and clone your fork
Start the dev server — docker compose up
Create a branch (e.g. feat/… or fix/…) and make your changes
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
- Clone the repository:
git clone https://gitlab.git.nrw/web/git-nrw.git - Start development server:
docker compose up - Create a new course:
hugo new courses/<kebab-style-course-name>/_index.md - Add lessons: Create lesson files in section folders, e.g.,
hugo new courses/<kebab-style-course-name>/10-getting-started/10-introduction.md - Write your content in Markdown.
- Preview your course:
http://localhost:1313/en/courses/<kebab-style-course-name> - Commit your changes:
git add .,git commit -m "your message",git push - 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, ortibav). 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
.mdextension. - File names: German and English versions must have identical file names.
- Frontmatter: For news articles, frontmatter must match (except
titleand 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
With contributions from
Support
Thank you for your contributions and for being part of the git.nrw community!