The Deska blog

CONTRIBUTING.md That Contributors Actually Follow

Learn how to write a CONTRIBUTING.md that contributors actually follow to scale your open source project and reduce maintenance burden.

· 10 min read

Most open source maintainers treat their documentation as an afterthought, yet the quality of your project often depends on a single file. A CONTRIBUTING.md that contributors actually follow is the difference between a thriving ecosystem and a pile of ignored pull requests. When a developer arrives at your repository, they are looking for a friction-less path to their first commit. If your guide is a wall of legal text or an outdated set of instructions, they will simply leave.

Effective documentation serves as a social contract between the maintainer and the community. It sets expectations, defines the technical bar, and provides a clear map of the development environment. Writing this file requires a shift in perspective. You are not just listing rules. You are designing an onboarding experience for a distributed team of volunteers.

The Architecture of a High Conversion Guide

A successful guide must address three distinct personas: the bug reporter, the feature requester, and the code contributor. Each needs specific information presented in a logical order. Start with a welcoming tone, but move quickly into actionable technical details.

The first section should establish the communication channels. Do you want bugs reported as GitHub issues? Should new ideas be discussed in a forum first? Clearly defining where conversations happen prevents fragmentation. Once the communication rules are set, transition into the environment setup. This is where most developers get stuck.

Use a standard structure to ensure familiarity:

  • Code of Conduct reference.
  • Detailed environment setup instructions.
  • Branching strategy and naming conventions.
  • Testing requirements and CI/CD expectations.
  • Pull request checklist.

Visualizing the Development Environment

One of the greatest hurdles for new contributors is the mental overhead of switching contexts. They have to clone the repo, install dependencies, and figure out how to run the project alongside their existing tools. This is where modern workspace managers can help.

For projects with complex architectures, many developers use Deska to streamline their setup. It provides a free desktop app for Mac, Windows and Linux that uses an infinite canvas. Instead of flipping between tabs, a contributor can place their code editor, terminals, and a preview browser side by side. For an open source project, providing a Deska workspace layout can help new developers see the whole system at once.

In your guide, you might describe how to arrange your panels. In Deska, a contributor can use the Monaco code editor in one panel while running the dev server in a terminal right next to it. They can zoom out to see all active processes or zoom in on a specific log session. This reduces the cognitive load of navigating a new codebase.

Technical Setup and Requirements

Precision is mandatory in the setup section. Do not assume your contributors have the same global packages installed as you. Use version managers like nvm or rbenv in your examples.

  1. Clone the repository and navigate to the root directory.
  2. Install the specific version of the runtime defined in the configuration files.
  3. Run the bootstrap script to handle dependencies and local environment variables.
  4. Execute the test suite to ensure the baseline is stable before making changes.

Consistency across machines is difficult to achieve. The industry has seen various approaches to this problem, from Docker containers to remote development environments. While some tools prefer a cloud-first approach, others prioritize the local development experience. Deska follows a local-first philosophy, keeping all files and sessions on the user machine. This is particularly useful for contributors who work offline or have strict security requirements for their local files.

Leveraging AI Agents in the Contribution Flow

The rise of AI has changed how developers interact with new repositories. Contributors now use agents to summarize codebases or generate unit tests. As a maintainer, you should guide how these tools interact with your project.

If your project involves complex logic, mention how contributors can use agents safely. The Deska workspace allows developers to run Claude Code, Codex CLI, and OpenCode side by side as individual panels. This setup lets a contributor ask an agent to explain a specific module without leaving the environment where the code is actually running.

Maintainers can also leverage Ask Deska to manage their own local workflow. This assistant can open specific panels or run commands through voice or chat. When reviewing a pull request locally, a maintainer can ask the assistant to check the session or open the relevant test logs, speeding up the feedback loop.

The Pull Request Lifecycle

A pull request is a request for a maintainer's time. Your guide must teach contributors how to respect that time. Use a template that forces the author to explain the "why" behind their change, not just the "what".

  • Description: What problem does this solve?
  • Testing: How can the reviewer verify the fix?
  • Screenshots: If there are UI changes, visual evidence is required.
  • Breaking Changes: Does this require a major version bump?

Encourage contributors to use a mobile app to monitor their PR status. Features like those in Deska allow developers to monitor their terminal outputs or session status from a phone through a secure relay. This means a contributor can step away from their desk while a long CI build runs and still know exactly when it finishes or fails.

Comparison of Documentation Strategies

ApproachProsCons
MinimalistLow maintenance for youHigh friction for new users
ComprehensiveAnswers all questionsCan be intimidating or outdated
InteractiveVisual and easy to followRequires specific tooling
Template basedEasy for contributors to fillCan lead to "checkbox" thinking

FAQ

How to write a contributing guide for GitHub?

Focus on the initial setup and the pull request template. Start with a clear "Getting Started" section that lists every command needed to get a green test suite. Use the CONTRIBUTING.md filename in the root directory or the .github folder so it is automatically suggested to new contributors.

What should be in a contribution guide?

It must include the setup process, coding standards, testing requirements, and the process for reporting bugs. A high quality guide also defines the project philosophy to help contributors understand which features are likely to be accepted or rejected.

Why is CONTRIBUTING.md important?

It reduces the repetitive work of onboarding new developers manually. By documenting the environment and expectations, you empower the community to solve their own problems and contribute high quality code without constant supervision.

Get started with your project documentation

Writing a clear guide is the first step toward a healthy project. If you want to see how a modern workspace can improve your own development flow, you can download the tools mentioned here. Enhance your local environment by trying the free infinite canvas app at /download. Good documentation and the right tools make every contribution better.

💡 Ideas+🐛 BugsSuggest a feature or report a bug