Why Blockly?
Stay organized with collections
Save and categorize content based on your preferences.
Blockly lets you focus on applying blocks to your domain without worrying about
the complexities of how those blocks should be rendered, dragged, or connected.
It is applicable to a wide range of educational use-cases, such as:
- Working students toward text-based programming.
- Encouraging computational thinking.
- Exploring other concepts (e.g. physics) computationally.
As well as many many industry use-cases, such as:
- Data analysis and cleaning.
- Automation (e.g. in robotics, process workflows, etc).
- Configuration (e.g. in online shops, IoT, etc).
Strengths
Blockly has a number of strengths that make it the most popular option for
building a block-based programming environment.
- Availability. Blockly is published on NPM, so you can require it in
the same way you require any other web dependency.
- Fully featured. Blockly comes bundled with common blocks that generate
code in 5 popular programming languages (JavaScript, Python, Lua, Dart, and
PHP). Plus it has a thriving plugin ecosystem that gives you even
more capabilities.
- Customizability. Blockly lets you easily define your own blocks, fields,
and inputs. Plus many of its core functionalities can be swapped out for
your own custom ones.
- Internationalization. Blockly's core library of blocks comes with
translations in 90+ languages, including right-to-left versions for Arabic
and Hebrew.
- Open Source. Google shares Blockly's technology with everyone so, together, we can educate the next generation of developers.
Alternatives
There are some use cases where it makes sense to use a library other than
Blockly. Here are some other options:
- PXT: This is an editor built on Blockly that powers
MakeCode. It outputs JavaScript exclusively, which enables it
to convert from code to blocks. It also comes bundled with a compiler and a
simulator.
- Droplet: This is the editor that powers
Pencil Code. It lets you type to create blocks without
dragging, and also supports going from code to blocks.
- Node-red: This is a node-based rather than block-based
programming editor, but it fulfills a similar function. It is popular for
wiring together hardware devices, often in industry contexts.
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 a versatile library for creating visual, block-based programming environments, suitable for education and industry applications.\u003c/p\u003e\n"],["\u003cp\u003eIt offers a rich set of features, including pre-built blocks, code generation in multiple languages, and extensive customization options.\u003c/p\u003e\n"],["\u003cp\u003eBlockly is easily integrated into web projects, supports internationalization, and benefits from an active open-source community.\u003c/p\u003e\n"],["\u003cp\u003eWhile Blockly is a robust solution, alternatives like PXT, Droplet, and Node-red cater to specific use cases such as code-to-block conversion, hardware integration, or node-based programming.\u003c/p\u003e\n"]]],["Blockly enables users to apply blocks to their domain without managing rendering or connections. It's applicable in education for computational thinking and industry for automation, data analysis, and configuration. Key strengths include NPM availability, bundled blocks for multiple languages, customizability, internationalization, and open-source nature. Alternatives like PXT, Droplet, and Node-red exist for specific use cases, like JavaScript-only environments or node-based programming.\n"],null,["Blockly lets you focus on applying blocks to your domain without worrying about\nthe complexities of how those blocks should be rendered, dragged, or connected.\n\nIt is applicable to a wide range of educational use-cases, such as:\n\n- Working students toward text-based programming.\n- Encouraging computational thinking.\n- Exploring other concepts (e.g. physics) computationally.\n\nAs well as many many industry use-cases, such as:\n\n- Data analysis and cleaning.\n- Automation (e.g. in robotics, process workflows, etc).\n- Configuration (e.g. in online shops, IoT, etc).\n\nStrengths\n\nBlockly has a number of strengths that make it the most popular option for\nbuilding a block-based programming environment.\n\n- **Availability.** Blockly is published on NPM, so you can require it in the same way you require any other web dependency.\n- **Fully featured.** Blockly comes bundled with common blocks that generate code in 5 popular programming languages (JavaScript, Python, Lua, Dart, and PHP). Plus it has a thriving [plugin ecosystem](https://google.github.io/blockly-samples/#plugins) that gives you even more capabilities.\n- **Customizability.** Blockly lets you easily define your own blocks, fields, and inputs. Plus many of its core functionalities can be swapped out for your own custom ones.\n- **Internationalization.** Blockly's core library of blocks comes with translations in 90+ languages, including right-to-left versions for Arabic and Hebrew.\n- **Open Source.** Google shares Blockly's technology with everyone so, together, we can educate the next generation of developers.\n\nAlternatives\n\nThere are some use cases where it makes sense to use a library other than\nBlockly. Here are some other options:\n\n- [**PXT**](https://github.com/Microsoft/pxt): This is an editor built on Blockly that powers [MakeCode](https://makecode.com). It outputs JavaScript exclusively, which enables it to convert from code to blocks. It also comes bundled with a compiler and a simulator.\n- [**Droplet**](https://github.com/PencilCode/droplet): This is the editor that powers [Pencil Code](https://pencilcode.net/). It lets you type to create blocks without dragging, and also supports going from code to blocks.\n- [**Node-red**](https://nodered.org/): This is a node-based rather than block-based programming editor, but it fulfills a similar function. It is popular for wiring together hardware devices, often in industry contexts."]]