Scribbler - JavaScript Notebook

Simple Interface for Experimenting in JavaScript. Developed for Open Source using Open Source.

Experiment in JavaScript With Ease

Scribbler is a browser-based tool to experiment in JavaScript for scientific computation/new code development/visualization/data science.

  • Runs without backend. Can be loaded from the file system.
  • Easy to use with a minimalistic UI.
  • Can load thirdparty libraries dynamically.
  • Ctrl-Enter for running the cell.
  • Alt/Option-enter for inserting new cell.
  • Toggle “code” to “html” for html content.

JavaScript is the language that never ceases to surprise you with its quirks and oddities.

~ Anonymous

Explore and experiment with JavaScript, get instant output to text and iterate.

Getting Started


No specific installation is required. You can use the git-hosted version (without downloading anything) here: Alternatively, you can download or clone the Github repo on any machine and host it in webserver. To host the app online, put the folder in web directory of the server and use the link to index.html. That’s it. No no npm, no node, no pip install, no apt-get install.


JavaScript: The only language where you can write the “Hello world” code in one line or in 1000.

~ Anonymous

Easy to start:

show("Hello World")

Simple interface for array manipulation and charting:

//Plots a sin graph

Example Notebooks

A hello-world notebook: More examples are added in the folder examples/ in Scribbler repository. Check the Samples page for links.



The notebook consists of cells. Each cell will have user inputted html/code and an output. There is a menu at the top right corner of the cell (or above the cell in case of smaller screens). There are two types of cells: code and html. The type of cell can be toggled using a switch in the cell menu. For code cells input and output are both shown. For html cells, input is hidden and opens up if you click the output.


To get the output of a cell press play ► button on the cell menu (or Cmd/Ctrl-Enter on keyboard after selecting the cell). The cell menu also has buttons for moving the cell up ↑, down ↓, adding a new cell ✛ and deleting the current cell ☓.


A notebook can be downloaded as json (has a default extension of .jsnb). IT can be loaded back into the app. The notebook or only the output can also be downloaded as html.


A .jsnb file can also be directly loaded into the app by suffixing the url of the file after “#” something like: The url of the file should be accessible by the browser through GET method.

Simple Interface to do Experiments

  • Scribbler addresses the need for a JavaScript experimentation interface similar to Jupyter Notebook for Python.
  • Existing solutions lack the ability to be freely downloaded or embedded elsewhere, unlike Jupyter Notebook or Google Colabs for Python.
  • Scribbler was developed as an open-source, backend-free solution, enabling JavaScript experimentation without requiring Node.js or a server.

Notebook Without Backend

  • Scribbler aims to be a "nodeless" app, usable directly in the browser without additional backend technologies.
  • This simplicity allows for easy hosting on platforms like GitHub Pages, eliminating the need for server hosting.
  • JavaScript's efficiency in running in the browser ensures smooth operation of Scribbler without the need for backend code.

Wide Range of Use Cases

The versatility of JavaScript and its extensive library ecosystem opens up limitless possibilities for Scribbler's applications, including.
  • Scientific simulations
  • Decentralized computing and finance
  • Numerical analysis
  • Charting tools
  • Interactive data science and machine learning experiments
  • Generative AI
  • Financial applications
To engage with the Scribbler community and explore its potential further, individuals are invited to participate in events like the Yellow Scribes Hackathon.
Happy experimenting!