Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nteract v2 Project Outline #6

Open
rgbkrk opened this issue Dec 20, 2023 · 3 comments
Open

nteract v2 Project Outline #6

rgbkrk opened this issue Dec 20, 2023 · 3 comments

Comments

@rgbkrk
Copy link
Member

rgbkrk commented Dec 20, 2023

Project Overview

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.
@rgbkrk
Copy link
Member Author

rgbkrk commented Dec 21, 2023

image

@rgbkrk
Copy link
Member Author

rgbkrk commented Dec 21, 2023

image

@rgbkrk rgbkrk mentioned this issue Dec 21, 2023
@jarmokivekas
Copy link

jarmokivekas commented Dec 22, 2023

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 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants