Scratch To Javascript

What if you’re not familiar with Scratch?

Scratch is amazing. Even if you haven’t coded in Scratch before, you can still use S2JS as long as you’re familiar with other programming tools that involve “loops,” “if-then-else” statements, and variables. If you’re new to these concepts, I recommend heading over to Scratch and learning how to code. Once you feel comfortable with Scratch, come back here.


S2JS is completely free – just like a free lunch, but with less food.

Free for reasonable, non-commercial educational use. More details can be found under the Terms of Use.

Which age groups is S2JS suitable for?

It’s not about age, but rather about your level of experience with Scratch. You should be very comfortable with making sprites move around, using variables, and mastering constructs like repeat and if-then-else blocks. It would also be great if you have some knowledge of cloning and “make a block,” although it’s not essential.

Is it important to follow the tutorial sections in order?

Yes, it does matter. The sections are carefully arranged to provide a logical flow of concepts. Each section builds upon the previous one, introducing new coding elements. If you skip around, you might find yourself feeling a bit lost.

Even if you already have some experience with JavaScript, I recommend following the lesson flow. You can go through it fairly quickly, but it’s better than jumping into the middle and not fully understanding the concepts.

See also  Exit Intent Popup: A Guide to Creating an Engaging Modal

How many programs/images can be stored?

You can store as many programs and images as you want until it becomes unwieldy for you, which is typically around a dozen or so. S2JS is primarily an educational tool designed to help Scratchers transition to JavaScript.

If you’re working on something massive, it might be time to find a proper Integrated Development Environment (IDE). S2JS will have successfully fulfilled its purpose. However, please refrain from using S2JS to store multi-megabyte programs that you obtained elsewhere for questionable purposes. We will delete them without notice. Let’s keep it clean and educational.

Can S2JS be used in coding classes or clubs?

Absolutely! In fact, that’s where S2JS shines the most. Many providers adopt a Flipped Classroom approach, where kids work through the S2JS tutorials, and the teacher offers individual assistance as needed.

Teachers can also set group goals or challenges to ensure everyone is comprehending the material and not just mindlessly clicking through. Students can work on their private S2JS project area to complete the assigned tasks.

As a teacher, you can monitor your students’ progress and work using our Teacher Console.

How does the Teacher Console work?

If you’re a school teacher or club organizer, the Teacher Console allows you to keep track of your students. You can see which tutorial modules they’ve completed, how much time they spent on each one, and view their programs’ source code and execution.

To get started, create a teacher group, and you’ll receive a special S2JS URL. Any student accessing S2JS through that URL automatically becomes a permanent member of your group.

Students can be members of multiple groups, and groups can have multiple owners. The Teacher Console serves as an excellent tool to monitor your students’ progress.

Can I charge money for using S2JS in my educational service?

We have no problem with you incorporating S2JS as part of an educational service for which you charge a fee. However, charging for direct access to S2JS is not permitted. You can monetize your resources and tuition, but access to S2JS should be free.

See also  Advanced JavaScript Projects

Why are images limited to 120k?

We’re not Google, after all. As much as we’d love to, we have to impose some limitations. The goal was to provide a simple image storage solution that wouldn’t be blocked by school firewalls. If you can access S2JS, you can also access its image storage.

If you have larger images, you can store them on a separate image-sharing website that your firewall allows, and simply reference those URLs in the programs you save on S2JS.

Why JavaScript?

Many educators often recommend Python as the next step after Scratch. While Python is a great language with many advantages, it falls short when it comes to running in a browser without installation and providing high-quality graphics that can be easily shared across different devices.

JavaScript, despite its limitations, offers the advantages mentioned above and has real-world applicability, making it an ideal next step in kids’ coding journeys.

Is there an easier/shorter/more elegant way to accomplish certain tasks?

Yes, there might be. Sometimes, we choose to break down complex tasks into multiple steps to help users understand how simple components come together to build something more intricate. We prioritize providing a clear and comprehensible learning experience, rather than overwhelming users with lengthy code snippets.

We also consider the subset of JavaScript that users have been introduced to. Eventually, they’ll be able to refactor the code into a single statement once they fully grasp the concepts.

However, if you come across a situation where you believe there’s a simpler path, regardless of the preceding comments, please let us know. Your feedback is valuable to us.

I think you’re promoting bad coding style in certain cases.

Similar to the previous point, our aim isn’t to teach users how to write professional-grade webpages compatible with ancient browsers. We strive to bridge the gap between Scratch and “lines of code” languages, while minimizing hurdles along the way.

See also  Learning Java And Javascript At The Same Time

For instance, inserting numerous calls to getElementById wouldn’t contribute to enthusiasm. We want users to stay excited and motivated. This doesn’t mean we don’t appreciate good coding practices, but our main focus is on facilitating the learning journey.

Why can’t you spell correctly?

We use Australian spelling for words like “colour.” Eventually, we plan to incorporate appropriate spelling variations based on your location.

What should I do if I find a bug, typo, contradiction, etc.?

Please inform us! Bugs and typos don’t tarnish our reputation, but leaving them unresolved certainly would. We appreciate your help in maintaining a high-quality learning experience.

Can I use S2JS as a general-purpose code storage tool for malicious or ad-blocking purposes?

Surprisingly, many people seem to think the answer is “yes,” but in reality, it’s a firm “no.” If you attempt to use S2JS for such purposes, your content will be promptly deleted without notice. Furthermore, storing large chunks of code without a valid reason is also discouraged.

There are numerous other platforms on the internet that freely allow general code storage. Please utilize those resources. S2JS is intended to help you take your first steps in JavaScript and provide a space for storing your personal programs as part of a productive learning journey.

Who are we and why are we doing this?

I taught myself electronics and machine language programming back in the late 1970s when I was a teenager. I went on to earn a degree in Computer Science and started my career at a medium-sized company. After six years, I quit my job and embarked on a freelancing adventure while searching for new ideas. Eventually, I developed software and founded my own company, which I successfully ran for 20 years before selling it to a multinational corporation.

Since then, I’ve been actively involved in my daughter’s school and dedicated six years to a coding club. During that time, I noticed that many kids were enthusiastic about Scratch but struggled to transition to Python, JavaScript, Unity, or other programming languages.

This realization drove me to create S2JS, drawing upon my firsthand experience at primary and high schools. Computing has been a rewarding field for me, so I’m happy to self-fund the development of S2JS.

If you’re curious about how teenagers explored computing during the early days of the modern industry, click here for a MITS Altair Simulator. It provides an authentic simulation of the computers we used. The “good old days” are not in the distant past; they are happening now!


Text, JavaScript source code, HTML, and courseware are (c) Copyright 2014-2021 S2JS and Ian Davies.

Scratch, the Scratch Cat, and portions of certain screenshots are copyright MIT Media Lab.

Scratch is a project of the Lifelong Kindergarten group at the MIT Media Lab. It is available for free at ProgramMatek.