MDN GitHub repositories

MDN Web Docs is a complex project with lots of moving parts. It's a good idea to get familiar with the different code repositories. This document describes the repositories (repos) you may need when contributing to MDN Web Docs.

Main repositories

content

This is where all the English content of the site is maintained, and where you'll make all changes to page content, prose, and in-page code examples.

rari

This is the backend part of the MDN Web Docs platform, where you'll go if you want to make changes to page structures and rendering machinery.

yari

This is the frontend part of the MDN Web Docs platform, where you'll find styles, design, and layout functionality.

browser-compat-data

Data used to generate the browser compatibility tables found on our reference pages. If you have information about browser compatibility of Web features — or are willing and able to do some research and/or experimentation — you can help update MDN's Browser Compatibility Data

translated-content

This is where localized content lives. Go here if you want to help translate pages into any of our actively maintained locales.

interactive-examples

The example code at the top of many of our reference pages (the code inside the "Try it" section).

Infrastructure

bob

The rendering system that produces the editable, copyable examples found at the top of many of our reference pages. This project builds the examples from the source code stored in the interactive-examples repository.

rumba

MDN's back-end system that mainly powers MDN Plus.

workflows

A collection of reusable GitHub Actions for use on MDN Web Docs repositories.

Planning and coordination

These are repository used for project planning, documenting the project itself, and community projects.

mdn/mdn

Project proposals and planning issues are maintained here.

mdn-community

This repository hosts GitHub Discussions when writers and contributors need to decide how to proceed with writing or technical decisions.

Code examples

These generally contain standalone code examples that are too big or cannot be rendered using the EmbedLiveSample macro.

Note: If you are updating the code on any given page, check if it's referenced in a corresponding example repo and, if so, make sure you've updated the example repo as well.