gopi-suvanam / scribbler

Scribbler - JavaScript Notebook Tool for experimenting in JavaScript. Runs in the browser without a backend. Discord server: https://discord.gg/uxNSsWunwU
https://scribbler.live
MIT License
67 stars 7 forks source link
html javascript notebook

Banner

Hello WorldDocsGalleryTutorialsDiscord

Scribbler: JavaScript Notebook.

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

Use here (No login required).

Browser-based JavaScript Notebook:

Join Our Discord Server

Scribbler Screenshot

Table of contents

  1. Getting Started
  2. Features
  3. Use cases
  4. Collaboration
  5. Vs. xyz
  6. Acknowledgements
  7. Additional Resources

Getting Started

  1. You can start using the hosted version (without downloading anything) here: https://app.scribbler.live/#. A hello-world notebook is avaliable here: Hello World in Scribbler
  2. For offline/local usage - clone this repository (git clone or better still - download) put it behind a webserver. That's it. No Ngnix, no npm, no node, no pip install, no apt-get install. DOWNLOAD LINK. I call this a "nodeless" app for two reasons - 1. it does not require node and npm to use.. 2. it does not require a backend runtime.
  3. For self-hosted use, you can put the folder in web directory of the server and use the link to index.html.
  4. Several examples are available in the folder examples/ of this repository. Check the README in that folder for links. They can be used as boilerplates for further experimentation.

To start simply write JavaScript:

function greet(x){
    return ("Hello "+x);
}
greet("World")

You can plot graphs and visualize easily:

//The single line below plots a sine graph
range(1,10,0.01).map(Math.sin).plot();

A few starting notebooks for further experimentation:

  1. Hello-world for JavaScript Notebook
  2. For-loop vs Reduce Performance Comparision
  3. Plotly graphs Example in JavaScript
  4. Option Pricing using Black-Scholes
  5. Dynamic System Simulation - Bouncing Ball on Moving Boundary
  6. Numerical Recipes in JavaScript
  7. Machine Learning Using Brain.js

Features

Use cases

  1. For trying new libraries for testing and building
  2. For building reproducible research and sharing the results with others

Not to be used for:

  1. Production use cases
  2. As an alternative to webapps
  3. Working with sensitive data like login/pwd/private keys etc.

Collaboration

The tool does not store data on cloud as it is intended to be a fully open source product for self-hosting/use on local machines. A fully hosted solution with collaboration is in the Roadmap. Collabortion is still possible through:

  1. Download and share .jsnb files.
  2. Use github for storing .jsnb files. Make the repo public or add collaborators. The notebooks built on Scribbler can be directly be synced on to GitHub using an access token.
  3. Files in public GitHub repos can be directly accessed as: https://app.scribbler.live/#https://raw.githubusercontent.com/[USERNAME]/[REPO]/[BRANCH]/[PATH_TO_FILE]
  4. If GitHub pages are enabled for the repo, the files can be accessed also using this link: https://app.scribbler.live/#https://[USERNAME].github.io/[REPO]/[PATH_TO_FILE]
  5. Map a cloud drive or LAN drive onto local machine and load from/download to the drive. Share the drive with collaborators.

How is Scribbler different

Acknowledgements

Links

Additional documentation for Scribbler:

  1. Docs
  2. Code-docs
  3. Roadmap
  4. Sample Notebooks