Jupyter Notebooks have been widely used in analytics and data science but face limitations in interpretability, reproducibility, and performance due to their reliance on imperative programming and shared mutable state. To address these issues, a new approach based on reactive programming has been introduced, using a directed acyclic graph (DAG) to manage dependencies between cells. This allows for better interpretability, reproducibility, and performance by visualizing and respecting a consistent order of execution for the notebook.