A few years ago, I ran a workshop about how to create custom Scratch blocks.

I made a template repository, based on the Scratch Team repos, but with a skeleton extension and some extra scripts and automation to handle building and publishing it. I included step-by-step instructions for building different types of Scratch extensions, including Scratch blocks based on web APIs, and Scratch blocks based on JavaScript modules from npm.
I created it for educators and coding group volunteers, who would like to customize Scratch for their students by giving them new and unique blocks to make things with. I wanted to make this idea accessible to people who perhaps don’t necessarily think of themselves as developers and wouldn’t otherwise know what it means to clone the Scratch Team repo and start hacking it.
Scratch has changed a lot in the few years since I first made that, most notably moving from being split across a large number of packages in different repos to a monorepo. So this week I gave my setup a bit of a spring-clean to get it up to date.
If you’d like to give it a go, please go to the instructions and follow along! (I haven’t updated the screenshots… sorry – github does look a little different since 2023, but I felt that it was close enough to still be understandable was too lazy to re-take all the screenshots. Hopefully that isn’t a blocker.)
Tags: scratch