Objective: Develop nteract v2 as a performant and stable desktop notebook application, focusing on fluid user experience and rapid prototyping.
Key Features
Fluid User Experience: Emphasis on speed and responsiveness, particularly in creating and manipulating notebook cells.
Backend-Managed State: State management primarily handled by the Rust backend.
Performance Focus: Leverage Tauri's performance benefits to enhance application efficiency.
Lessons from nteract v1
Transition away from nteract web, content refs, myths, and bundled components.
Adopt a one notebook per window approach.
Discontinue play.nteract.io and webpack configurator.
Strategy for nteract v2
Build an integrated application, not a modular toolkit.
Offload outputs to a content store for standardization and performance.
Emphasize a design that facilitates fluid interactions and rapid prototyping.
Switch to Tailwind CSS and/or shadcn/ui for UI development.
Technical Decision: Tauri vs. Electron
Preference for Tauri due to its performance benefits and alignment with the project's renewed focus, despite Electron's familiarity and more complete API set.
Phases of Development
Initial Phase: Planning and Research
šš» You are here šš¾
Define the project scope and technical requirements.
Research Tauri's capabilities
Investigate integration with Jupyter kernels.
Draft a detailed design document outlining the desired user experience.
Ongoing Phases: Development, Integration, and Deployment
Backend Development (Rust)
Implement functions for notebook manipulation and interaction with Jupyter kernels.
Develop CRDT logic for real-time document synchronization.
Establish communication protocols with the frontend.
Frontend Development
Design and implement the notebook viewing and editing interface using Tailwind CSS.
Integrate CRDT logic for real-time editing and synchronization with the backend.
Focus on creating a immersively iterable notebook for prototyping
Integration and Testing
Continuous integration of separate backend and frontend components
Develop end-to-end tests using a real kernel
Deployment and Documentation
Ongoing preparation for frequent releases with a focus on CI/CD efficiency
Continuous development of documentation and user guides
Foster community involvement and establish contribution guidelines
Risk Management
Address challenges in adopting new technology (Tauri) and integrating it with existing systems.
Ensure a balance between performance focus and maintaining an intuitive and engaging user interface.
This came up in my notification feed and I felt like popping in and wishing y'all good luck with this project. I've really enjoyed using the previous nteract so I'm curious to see where this will go :)
Project Overview
Objective: Develop nteract v2 as a performant and stable desktop notebook application, focusing on fluid user experience and rapid prototyping.
Key Features
Lessons from nteract v1
Strategy for nteract v2
Technical Decision: Tauri vs. Electron
Phases of Development
Initial Phase: Planning and Research
šš» You are here šš¾
Ongoing Phases: Development, Integration, and Deployment
Backend Development (Rust)
Frontend Development
Integration and Testing
Deployment and Documentation
Risk Management