Snap!
Snap! is a visual, drag-and-drop programming language for kids and adults, and a platform for studying computer science.
What Snap! is
Snap! is a visual, drag-and-drop programming language for kids and adults, and a platform for studying computer science. It runs in a browser and is implemented in JavaScript. Users can make their own blocks; its support for first-class lists, procedures, and continuations enables custom blocks and control structures. Projects can also use sprites, costumes, and sounds. The site presents Snap! as a serious introduction to computer science for high school and college students.
Snap! works in modern browsers on computers and most modern tablets, though its interface is not optimized for mobile use. It can run offline as a progressive web app or from downloaded source files opened locally in a browser. Offline use cannot access cloud projects, and projects are exported to the computer as XML files. Extensions include devices such as BBC micro:bit, Sphero, LEGO NXT, Finch, Hummingbird, Arduino, and Raspberry Pi; other extensions include NetsBlox and TurtleStitch. The system is free and open source under the GNU General Public License. An account is required to save projects on its cloud server.
Good
- Users can create their own programming blocks.
- Runs offline as a progressive web app.
- Device extensions include Arduino and BBC micro:bit.
- Cloud saving is optional; programming does not require personal information.
- Free and open source under the GNU General Public License.
Watch out
- Offline use cannot access cloud projects.
- Cloud project saving requires an account.
- The interface is not optimized for mobile use.
- The site cannot guarantee third parties will not breach its database.
Who it suits
Snap! suits learners who want block-based programming and a route into computer science, including high school and college students. It also offers device extensions, though its interface is not optimized for mobile use.
Verdict
Snap! combines visual programming with features intended for deeper computer science study. Consider its offline cloud limitation and mobile interface caveat if those affect how you plan to use it.
The facts
Each one read from Snap!'s own pages, with the date it was checked.
Where it runs
- Browser-based
- Snap! runs in a browser and is implemented in JavaScript.checked 7 Oct 2026
- Device integrations
- The extensions page lists packages for devices including BBC micro:bit, Sphero, LEGO NXT, Finch, Hummingbird, and Arduino.checked 7 Oct 2026
- Devices and browsers
- Snap! runs in modern browsers on computers and most modern tablets; its interface is not yet optimized for mobile use.checked 7 Oct 2026
What it does
- Build Your Own Blocks
- Users can create their own blocks, and the language supports first-class lists, procedures, continuations, sprites, costumes, and sounds.checked 7 Oct 2026
- Children's data
- Snap! says it voluntarily follows COPPA rules for children under 13 and applies its protections worldwide, using age 16 as its parental-notification cutoff.checked 7 Oct 2026
- Education extensions
- Listed extensions include NetsBlox for multiplayer networking and TurtleStitch for generating embroidery patterns.checked 7 Oct 2026
- Hardware extensions
- Listed device extensions include BBC micro:bit, Sphero, Lego NXT, Wiimote, Finch, Hummingbird, Arduino, and Raspberry Pi.checked 7 Oct 2026
- Learning audience
- The site describes Snap! as suitable for a serious introduction to computer science for high school or college students.checked 7 Oct 2026
- Offline limitation
- The offline version cannot access cloud projects; it exports projects as XML files to the computer.checked 7 Oct 2026
- Offline use
- Snap! can be used offline as a progressive web app or by downloading its sources and opening them locally in a browser.checked 7 Oct 2026
- Open source
- All components of the Snap! Programming System are free and open source under the GNU General Public License.checked 7 Oct 2026
- Privacy
- Users can program without providing personally identifiable information; an account is required to save projects on the cloud server.checked 7 Oct 2026
- Product
- Snap! is a visual, drag-and-drop programming language for kids and adults, and a platform for studying computer science.checked 7 Oct 2026
- Programming features
- Snap! adds first-class lists, procedures, and continuations, which support user-created blocks and control structures.checked 7 Oct 2026
- Purpose
- Snap! is a visual, drag-and-drop programming language for kids and adults, and a platform for serious study of computer science.checked 7 Oct 2026
- Security
- Snap! says it follows industry standards to secure its web server but cannot absolutely guarantee that third parties will not access its database.checked 7 Oct 2026
- Security limitation
- Snap! says it follows industry standards for web-server security but cannot absolutely guarantee that third parties will not breach its database.checked 7 Oct 2026
- Support
- Snap! provides a community forum and a contact page for support.checked 7 Oct 2026
The company
- Makers
- Snap! is presented by UC Berkeley and developed by Jens Mönig at SAP, with design input and documentation by Brian Harvey at UC Berkeley.checked 7 Oct 2026
Alternatives to Snap!
- 1

Codecademy
Free planAndroidiOSWeb8.1Free plan - 2

Kodable
Free planAndroidiOSWeb8.1From $119.99 a year - 3

MIT App Inventor
Free planOpen sourceAndroidiOSWebAPI8.0Free plan - 4

CodeHS
Free planAndroidiOSWeb7.6From $990 a year - 5
Hopscotch
Free planAndroidiOSWebmacOS7.4From $19.99 a year - 6
Progate
Free planAndroidiOSWebmacOS7.4From $14.99 a month
