👍🎉 First off, thanks for taking the time to contribute! 🎉👍
This document provides guidelines and instructions for contributing to the Maintainer Month website.
Choose your contribution type to jump to the right section:
Want to showcase your maintainer-focused event during Maintainer Month? → Jump to Adding a New Event
Have a helpful resource for maintainers (article, video, tutorial)? → Jump to Adding a New Resource
Spotted a typo or content error that needs fixing? → Jump to Fixing Typos or Content Issues
Want to improve the website functionality or structure? → Jump to Making Code Changes
Need to run the website locally for testing? → Jump to Development Guidelines
- Fork the repository and create your branch from
main - Make your changes following the guidelines below
- Test your changes locally if possible
- Submit a pull request with a clear description of your changes
- Navigate to the
content/events/folder - Create a new markdown file with a descriptive name (e.g.,
2025-05-20-your-event-name.md) - Use the following template:
---
title: 'Your Event Title'
metaTitle: 'Your Event Title'
metaDesc: 'A brief description of your event'
date: 'MM/DD'
UTCStartTime: 'HH:MM'
UTCEndTime: 'HH:MM'
type: 'meetup'
language: 'English'
location: 'Virtual or Physical Location'
userName: 'organizationName'
userLink: 'https://link-to-organization.com'
linkUrl: 'https://link-to-event.com'
---
Detailed description of your event goes here. You can use markdown formatting.- All frontmatter fields (between
---) are mandatory - Submit a PR with your changes
- Open the
content/library/resources.jsonfile - Add a new entry to the
resourcesarray following this format:
{
"title": "Resource Title",
"author": "Author Name",
"description": "Brief description (max 200 characters)",
"link": "https://link-to-resource.com",
"type": "video|article|tutorial|etc",
"topics": "relevant topic tags"
}- Submit a PR with your changes
Found something that needs fixing? We appreciate your help! Here's how to contribute corrections:
- Spelling or grammar errors
- Broken links
- Outdated information
- Formatting issues
- Missing or incorrect event details
- Website text: Files in the
content/directory - Event information: Files in
content/events/ - Resource library:
content/library/resources.json - Homepage content: Files in
content/home/ - General site text:
content/commons.json
- Locate the file with the content that needs correction
- Make your corrections (keep existing formatting and structure)
- For events, be careful not to modify frontmatter variable names (between
---) - Submit a PR with a clear description of what you fixed
Quick Tip: For simple typos, you can even edit directly on GitHub by clicking the pencil icon on any file!
We welcome both minor improvements and structural changes, but the process differs:
For small improvements like:
- Bug fixes
- UI/UX tweaks
- Performance optimizations
- Code cleanup or refactoring
Process:
- Fork the repository and create a branch
- Make your changes following existing code patterns
- Test locally with
npm run devandnpm test - Submit a PR with a clear description
For significant changes like:
- New features or pages
- Major architectural changes
- New dependencies or build processes
- Breaking changes to existing functionality
Process:
- Open an issue first to discuss your proposal with maintainers
- Wait for feedback and approval before starting work
- Follow the project's coding style and patterns
- Test your changes thoroughly locally
- Include clear documentation for any new functionality
- Submit a PR referencing the issue
- Clone the repository
- Install dependencies:
npm install - Start the development server:
npm run dev - Visit
http://localhost:3000to see your changes
- Follow the existing code style and patterns
- Use descriptive variable and function names
- Write comments for complex logic
- Run tests with
npm testbefore submitting changes - Add new tests for new functionality when appropriate
Important: Do not modify variable names in frontmatter sections (between
---). These are required for the website to function properly.
title: Event titlemetaTitle: Title for SEO meta tagsmetaDesc: Description for SEO meta tagsdate: Event date inMM/DDformatUTCStartTime: Start time in UTC, inHH:MMformatUTCEndTime: End time in UTC, inHH:MMformattype: One of:podcast,stream,talk,meetup,fundraising,conference,misclanguage: Primary language of the eventlocation:Virtualor physical locationuserName: Organizer/organization nameuserLink: Link to organizer profile/websitelinkUrl: Direct link to the event
title: Resource titleauthor: Author or creator namedescription: Brief description (max 200 characters)link: URL to the resourcetype: Content type (e.g.,video,article,tutorial)topics: Relevant topic tags
Other content files are organized as follows:
content/home/: Content for the homepage sectionscontent/commons.json: Common website text (menu, footer, page titles, etc.)
When editing these files, maintain the existing structure and frontmatter fields.
The Maintainer Month website is maintained by the Open Source team at GitHub. You can reach out at <maintainermonth @ github .com>