The next generation of interactive notebooks with reactive programming and live JavaScript execution.
The main Nodebook.js interface showcasing reactive code cells, rich outputs, and live data visualization
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
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
Full ES6+ JavaScript support with modern async/await, modules, and rich standard library access.
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
Interactive charts and data tables rendered directly in notebook cells
Dynamic markdown with variable interpolation, LaTeX math, and rich formatting.
The current price is ${{totalPrice}} (base: ${{basePrice}})
$$E = mc^2$$
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`;
- Generate code cells with AI assistance
- Smart code completions
- Intelligent error detection and suggestions
- Clean, intuitive design
- Dark/light theme support
- Responsive layout
- Reading mode for presentations
- Windows 10+ / macOS 10.14+ / Linux (Ubuntu 18.04+)
- Node.js 16+ (for development)
- 4GB RAM minimum, 8GB recommended
- 500MB disk space
- Visit the Releases page
- Download the installer for your platform
- Run the installer and follow the setup wizard
# 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
Access the full documentation or within the application:
- Press
Ctrl/Cmd+,
for instant help - Click the ๐ icon in the toolbar
- Use "View Documentation" command
- Code Cells Guide - JavaScript execution, modules, and outputs
- Markdown Cells - Rich text, LaTeX, and variable interpolation
- Formula System - Excel-like formulas with reactive updates
- Storage System - Data persistence and state management
- Module System - Using external libraries and packages
- Static Code Cells - Manual execution for side effects
- Reading Mode - Presentation mode for sharing
- Async/Await Guide - Handling asynchronous operations
-
Create a New Notebook
File โ New Notebook (Ctrl+N)
-
Add Your First Code Cell
const greeting = "Hello, Nodebook.js!"; console.log(greeting); output(greeting);
-
Add a Markdown Cell
# My First Notebook The greeting is: **{{greeting}}**
-
Execute and See Magic
- Press
Shift+Enter
to run cells - Watch variables update across cells automatically
- See rich outputs and interactive visualizations
- Press
Your first notebook showing reactive variables and rich outputs
- Electron - Cross-platform desktop app framework
- React - Modern UI library
- TypeScript - Type-safe JavaScript
- Vite - Fast build tool
- Tailwind CSS - Utility-first CSS framework
- CodeMirror - Advanced code editor
- Github Copilot - AI-powered code suggestions
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and add tests
- Commit:
git commit -m 'Add amazing feature'
- Push:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: [email protected]
- Inspired by Jupyter Notebooks and Observable
- Thanks to all contributors and beta testers
- Built with amazing open-source technologies
Made with โค๏ธ by Gabriele Cannata