Snap! Reference Manual

A manual for the Snap! programming language
Author

Brian Harvey, Jens Mönig, Michael Ball, Jadga Hügle, Victoria Phelps, Bernat Romagosa

Published

September 1, 2025

Doi

Introduction

Snap! Manual Cover Image

This a work in progress!

Welcome to the “new” Snap manual. However, there are still many images and pages that need proper formatting and updates for version 11.

You may wish to read a very nicely typeset version of the manual.

Version 11.0

Snap (formerly BYOB) is an extended reimplementation of Scratch (https://scratch.mit.edu) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, first class sprites, first class costumes, first class sounds, and first class continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.

In this manual we sometimes make reference to Scratch, e.g., to explain how some Snap feature extends something familiar in Scratch. It’s very helpful to have some experience with Scratch before reading this manual, but not essential.

To run Snap, open a browser window and visit https://snap.berkeley.edu/snap. The Snap community web site at https://snap.berkeley.edu is covered briefly in ?sec-appendix-community

The manual is roughly organized into a few sections.

  • Chapters 1 to 11 cover the primary features for writing programings in Snap!. They are organized from introductory to advanced topics.
  • Chapters 12 and 13 cover the user interface components of both the Snap! editor and the community site.
  • The appendicies provide documentation for every block in Snap block, as well as some of libraries provided.

Features of the Manual

You’ll find the table of contents on the left side of each page. At the bottom of each page, you’ll find previous and next links to navigate the manual in order.

A search function is included in the upper right hand corner. If you which you can type / (or ?) to jump to the search function.