Skip to content

Contributing

If you’re interested in supporting the Hub’s development and are familiar with Markdown, read on to learn how to contribute to the project.

Contributions are very welcome and appreciated. Be sure to review CONTRIBUTING.md before getting started with your contribution!

This is not the entire project structure, but it’s the most important part of the project structure which we recommend you limit your contributions to.

  • Directorypublic (images and static assets)
  • Directorysrc
    • Directoryassets (official logos)
    • components (reusable UI components)
    • Directorycontent
      • Directorydocs
        • Directoryaibusiness/ (AI Business exams)
        • Directoryazure/ (Azure exams)
        • Directorydynamics/ (Dynamics exams)
        • Directorygithub/ (GitHub exams)
        • Directoryguide/ (certification guides)
        • Directorylabs/ (hands-on lab guides)
        • Directorymicrosoft365/ (Microsoft 365 exams)
        • Directorypower/ (Power Platform exams)
        • Directorysecurity/ (Security exams)
        • Directoryvouchers/ (voucher offers)
        • contributing.mdx
        • labs.mdx
        • office.mdx
        • privacy.mdx
        • supportus.mdx
        • vouchers.mdx
        • welcome.mdx
        • wiki.mdx (Wiki collection)
      • blog (blog posts)
    • layouts (page layouts)
    • pages (routed pages: news, contact, etc.)
    • utils (utility functions)
  • astro.config.mjs (Astro configuration)
  • package.json (project dependencies)
  • tsconfig.json (TypeScript configuration)
  • Directorymcp-worker/ (MCP server worker)

While this method is limited in terms of what you should contribute, you can still contribute to the project by adding new text content on existing pages, fixing typos, or improving existing text content.

  • Good understanding of Markdown
  • Basic understanding of how to use GitHub
  • A brain and patience
  • A computer and an internet connection
  1. Fork the project to your GitHub account.

  2. Navigate to the file you want to edit in the GitHub repository of your fork.

  3. Click on the edit icon on the top right corner of the file.

  4. Make your changes in the editor.

  5. After making changes, scroll down to the bottom of the page and write a short description of the changes you made.

  6. Create a pull request to the main repository. Wait for the maintainers to review your pull request.

  7. Celebrate when your pull request is merged!

This method is more advanced and allows you to contribute to the project in a more flexible way. You can add new pages, edit existing pages, and add new components to the Hub. This also allows you to preview your changes locally before submitting a pull request.

  • Basic understanding of Markdown and Starlight Components
  • Basic understanding of how to use GitHub
  • Git installed on your machine
  • A brain and patience
  • A computer and an internet connection
  • A code editor like VSCode or a GitHub’s Codespace
  • Optional: Socket.dev CLI for supply chain security
  1. Fork the project, then clone it to your local machine and cd into the directory. If you don’t know what any of this means, refer to this video here.

  2. Install Node.js and pnpm:

    macOS / Linux

    We recommend using nvm to manage Node.js versions:

    Terminal window
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
    nvm install 22

    Then install pnpm:

    Terminal window
    curl -fsSL https://get.pnpm.io/install.sh | sh -

    Windows

    Download Node.js from nodejs.org or use fnm:

    Terminal window
    winget install Schniz.fnm
    fnm install 22

    Then install pnpm:

    Terminal window
    iwr https://get.pnpm.io/install.ps1 -useb | iex
  3. Install dependencies:

    Terminal window
    pnpm install
    pnpm approve-builds

    (pnpm approve-builds approves optional native build scripts required by some dependencies.)

  4. Start the dev server:

    Terminal window
    pnpm dev
  5. Open your browser and navigate to http://localhost:4321 to see the project running.

  6. After making changes, make sure you’re not breaking anything by previewing your changes locally. If there are no errors, commit your changes and push them to your forked repository.

  7. Create a pull request to the main repository. Wait for the maintainers to review your pull request.

  8. Celebrate when your pull request is merged!

The Hub uses Socket.dev to detect supply chain attacks in npm packages. Setting up aliases lets you use pnpm as normal while scanning every install automatically.

First, install the Socket CLI globally:

Terminal window
npm i -g sfw

Then configure shell aliases for your platform:

Add to ~/.bashrc or ~/.zshrc:

Terminal window
alias npm="sfw npm"
alias yarn="sfw yarn"
alias pnpm="sfw pnpm"
alias npx="sfw npx"

Then run source ~/.bashrc (or ~/.zshrc) to apply.

Add to your PowerShell profile ($PROFILE):

Terminal window
function pnpm { sfw pnpm @args }
function npm { sfw npm @args }
function npx { sfw npx @args }

Restart PowerShell to apply. Now pnpm install runs through Socket automatically.

We recommend using VSCode or GitHub Codespaces for contributing. The repo includes a pre-configured .vscode/settings.json with Markdown paste and drop settings.

Recommended extensions:

If you’re new to the project, you can start by fixing typos, adding new studying resources, or improving existing guides. This will help you get familiar with the project structure and the way content is written.

Here are some resources that will help you understand how the Hub works better: