Skip to content

Interactive reactive notebooks with live JavaScript, data visualization, and real-time updates.

Notifications You must be signed in to change notification settings

Canna71/nodebook.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nodebook.js Icon Nodebook.js

The next generation of interactive notebooks with reactive programming and live JavaScript execution.

Version License Electron React

Nodebook.js Main Interface The main Nodebook.js interface showcasing reactive code cells, rich outputs, and live data visualization

๐Ÿš€ What is Nodebook.js?

Nodebook.js is a modern reactive notebook application that revolutionizes interactive computing. Unlike traditional notebooks, Nodebook.js features a reactive system where cells automatically update when their dependencies change, creating a truly live and dynamic environment for:

  • ๐Ÿ“Š Data Analysis & Visualization
  • ๐Ÿงช Scientific Computing
  • ๐Ÿ“ˆ Financial Modeling
  • ๐Ÿค– AI/ML Prototyping
  • ๐Ÿ“š Educational Content
  • ๐Ÿ› ๏ธ Rapid Prototyping

โœจ Key Features

๐Ÿ”ฌ Reactive Programming

Variables and computations automatically propagate changes throughout your notebook. When you update a value, all dependent cells re-execute automatically.

// Cell 1: Define a variable
exports.basePrice = 100;

// Cell 2: Automatically updates when basePrice changes
exports.totalPrice = basePrice * 1.08; // Tax included

โšก Live JavaScript Execution

Full ES6+ JavaScript support with modern async/await, modules, and rich standard library access.

๐Ÿ“Š Rich Data Visualization

Built-in support for popular visualization libraries:

  • Plotly.js - Interactive charts and graphs
  • D3.js - Custom data visualizations
  • Chart.js - Beautiful charts
  • DataFrames - Tabular data with danfo.js

Data Visualization Example Interactive charts and data tables rendered directly in notebook cells

๐Ÿ“ Enhanced Markdown

Dynamic markdown with variable interpolation, LaTeX math, and rich formatting.

The current price is ${{totalPrice}} (base: ${{basePrice}})

$$E = mc^2$$

๐Ÿ”ง Modular System

Easy access to popular libraries:

// Pre-loaded libraries
dfd.readCSV('data.csv').then(df => {
    output.table(df);
});

// TensorFlow for machine learning
const model = tf.sequential({...});

// Shell integration with zx
await $`ls -la`;

๐Ÿค– AI-Powered Development

  • Generate code cells with AI assistance
  • Smart code completions
  • Intelligent error detection and suggestions

๐ŸŽจ Modern Interface

  • Clean, intuitive design
  • Dark/light theme support
  • Responsive layout
  • Reading mode for presentations

Homepage Interface

๐Ÿ› ๏ธ Installation & Setup

System Requirements

  • Windows 10+ / macOS 10.14+ / Linux (Ubuntu 18.04+)
  • Node.js 16+ (for development)
  • 4GB RAM minimum, 8GB recommended
  • 500MB disk space

Download

  1. Visit the Releases page
  2. Download the installer for your platform
  3. Run the installer and follow the setup wizard

Development Setup

# Clone the repository
git clone https://github.com/gcannata/nodebook.js.git
cd nodebook.js

# Install dependencies
pnpm install

# Start development server
pnpm start

# Build for production
pnpm run make

๐Ÿ“š Documentation

๐Ÿ“– Complete Documentation

Access the full documentation or within the application:

  • Press Ctrl/Cmd+, for instant help
  • Click the ๐Ÿ“– icon in the toolbar
  • Use "View Documentation" command

๐ŸŽฏ Quick Start Guides

๐Ÿ”ง Advanced Features

๐ŸŽฎ Quick Start

  1. Create a New Notebook

    File โ†’ New Notebook (Ctrl+N)
    
  2. Add Your First Code Cell

    const greeting = "Hello, Nodebook.js!";
    console.log(greeting);
    output(greeting);
  3. Add a Markdown Cell

    # My First Notebook
    The greeting is: **{{greeting}}**
  4. Execute and See Magic

    • Press Shift+Enter to run cells
    • Watch variables update across cells automatically
    • See rich outputs and interactive visualizations

Getting Started Example Your first notebook showing reactive variables and rich outputs

๐Ÿ”ง Built With

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests
  4. Commit: git commit -m 'Add amazing feature'
  5. Push: git push origin feature/amazing-feature
  6. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support

๐Ÿ™ Acknowledgments

  • Inspired by Jupyter Notebooks and Observable
  • Thanks to all contributors and beta testers
  • Built with amazing open-source technologies

Made with โค๏ธ by Gabriele Cannata

About

Interactive reactive notebooks with live JavaScript, data visualization, and real-time updates.

Resources

Stars

Watchers

Forks

Packages

No packages published