Get started contributing to Blockly
Stay organized with collections
Save and categorize content based on your preferences.
Blockly is open source and is primarily maintained by a small team. We welcome
contributions from developers outside the core team; there is no way for us to
build every requested feature or fix every reported bug without our community.
This section contains general guides that may be helpful to you especially if
you are new to open source development.
For information specific to Blockly that you should read before making a
contribution, see the
Contributing to Core and
Contributing to Samples sections.
Which repository?
A repository contains all the files for a single project. Blockly has two
repositories: blockly core and blockly-samples.
Blockly core is the repository for the Blockly library. Use this repository
if you want to make a change to core Blockly behaviour in a way that will apply
to all users of the library.
Blockly samples is the repository for samples, plugins, and codelabs. Use
this repository if you want to create or modify a plugin; write a codelab; or
create or modify a sample.
Step by step
These are the general steps you will follow any time you make a change.
- Install Git and Node, following the links in the Tools
section.
- Fork and clone the repository. GitHub has a wonderful tutorial about
forking a repo.
To apply it to blockly, just replace every instance of
octocat/Spoon-Knife with google/blockly or
google/blockly-samples, depending on which repository you want to work
in.
- Sync your fork. GitHub provides a tutorial for
syncing a fork
as well.
- Check out the main branch. In blockly core, this is the
develop
branch. In blockly-samples this is the master
branch.
- Install dependencies and build tools by running
npm install
in the
root directory.
- Create a new branch by running
git checkout -b myBranchName
in a
terminal. The name should help you remember what you're working on.
- Make your changes.
- Validate your changes, following the guide for
core or
samples.
- Save your changes with
git commit -am "fix: My commit message"
.
Read more about commit messages.
- Push your changes to GitHub with
git push origin myBranchName
.
- Open a pull request when your code is ready. A member of the Blockly
team will review your changes and merge them into Blockly if they are
approved. For more information see
PR Review Process.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-05-23 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-23 UTC."],[[["\u003cp\u003eBlockly is an open-source project maintained by a core team and welcomes contributions from the community to enhance its features and address bugs.\u003c/p\u003e\n"],["\u003cp\u003eBlockly has two repositories, "blockly core" for the library itself and "blockly-samples" for plugins, samples, and codelabs, and contributors should choose the appropriate repository based on their contribution.\u003c/p\u003e\n"],["\u003cp\u003eThe contribution process involves forking the repository, syncing it, creating a new branch for changes, validating them, and ultimately opening a pull request for review by the Blockly team.\u003c/p\u003e\n"],["\u003cp\u003eBefore making contributions, it's recommended to install Git and Node, familiarize yourself with GitHub's forking and syncing processes, and review the guidelines specific to contributing to Blockly core or samples.\u003c/p\u003e\n"]]],["Blockly has two repositories: core and samples. To contribute, first install Git and Node. Then, fork and clone the relevant repository (google/blockly or google/blockly-samples). Sync your fork, checkout the main branch (develop for core, master for samples), and install dependencies with `npm install`. Create a new branch, make and validate changes, commit with `git commit`, push to GitHub with `git push`, and finally open a pull request.\n"],null,["# Get started contributing to Blockly\n\nBlockly is open source and is primarily maintained by a small team. We welcome\ncontributions from developers outside the core team; there is no way for us to\nbuild every requested feature or fix every reported bug without our community.\nThis section contains general guides that may be helpful to you especially if\nyou are new to open source development.\n\nFor information specific to Blockly that you should read before making a\ncontribution, see the\n[Contributing to Core](/blockly/guides/contribute/core) and\n[Contributing to Samples](/blockly/guides/contribute/samples) sections.\n\nWhich repository?\n-----------------\n\nA **repository** contains all the files for a single project. Blockly has two\nrepositories: blockly core and blockly-samples.\n\n**Blockly core** is the repository for the Blockly library. Use this repository\nif you want to make a change to core Blockly behaviour in a way that will apply\nto all users of the library.\n\n**Blockly samples** is the repository for samples, plugins, and codelabs. Use\nthis repository if you want to create or modify a plugin; write a codelab; or\ncreate or modify a sample.\n\nStep by step\n------------\n\nThese are the general steps you will follow any time you make a change.\n\n1. **Install** Git and Node, following the links in the [Tools](/blockly/guides/contribute/get-started/development_tools) section.\n2. **Fork and clone the repository.** GitHub has a wonderful tutorial about [forking a repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo#fork-an-example-repository). To apply it to blockly, just replace every instance of **octocat/Spoon-Knife** with **google/blockly** or **google/blockly-samples**, depending on which repository you want to work in.\n3. **Sync your fork.** GitHub provides a tutorial for [syncing a fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork) as well.\n4. **Check out the main branch.** In blockly core, this is the `develop` branch. In blockly-samples this is the `master` branch.\n5. **Install** dependencies and build tools by running `npm install` in the root directory.\n6. **Create a new branch** by running `git checkout -b myBranchName` in a terminal. The name should help you remember what you're working on.\n7. **Make your changes.**\n8. **Validate your changes,** following the guide for [core](/blockly/guides/contribute/core) or [samples](/blockly/guides/contribute/samples).\n9. **Save your changes** with `git commit -am \"fix: My commit message\"`. [Read more about commit messages]().\n10. **Push your changes** to GitHub with `git push origin myBranchName`.\n11. **Open a pull request** when your code is ready. A member of the Blockly team will review your changes and merge them into Blockly if they are approved. For more information see [PR Review Process](/blockly/guides/contribute/get-started/pr_review_process)."]]