Skip to content

Commit

Permalink
update the README to match #6
Browse files Browse the repository at this point in the history
  • Loading branch information
rgbkrk committed Jan 15, 2024
1 parent da4ac0b commit 5fc4a79
Showing 1 changed file with 67 additions and 22 deletions.
89 changes: 67 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,44 @@ _Iterating on the next version of nteract_

## Background

nteract next is a desktop application for notebooks built on:
We're coming back to our roots by creating a stable desktop app of the notebook. We're going to start letting go of some of the modular toolkit that expanded while we were learning (and frankly, adapting amidst the pandemic). It's time to come back to first principles for the notebook experience.

* Rust
* Tauri
* Tokio
nteract was founded on a principle that everyone should be able to `play`, `create`, and `share` with notebooks.

Know rust? Know TypeScript? Want to learn? **Come join us!**

## Development

Clone the repo, cd into `nteract-next`

Install pre-reqs:

- [pnpm](https://pnpm.io/installation)
- [Rust](https://www.rust-lang.org/tools/install)
- [Tauri system deps](https://tauri.app/v1/guides/getting-started/prerequisites/)
- (Not listed on Tauri site but may also need `libsoup2.4-dev`)

Install dependencies:

```
pnpm install
```

Run the dev version

```
pnpm tauri dev
```

## Recommended IDE Setup

- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)

## Architecture

```
+-------------------+ +-------------------+
| Tauri Main Process| | Kernel Sidecar |
| Tauri Main Process| | Kernel |
+-------------------+ +-------------------+
| ^
| IPC and Events |
Expand All @@ -37,30 +65,47 @@ nteract next is a desktop application for notebooks built on:
+-------------------+ +-------------------+
```

## Development

Clone the repo, cd into `nteract-next`
## Design Principles

Install pre-reqs:
### Acknowledge the Three Modalities

- [pnpm](https://pnpm.io/installation)
- [Rust](https://www.rust-lang.org/tools/install)
- [Tauri system deps](https://tauri.app/v1/guides/getting-started/prerequisites/)
- (Not listed on Tauri site but may also need `libsoup2.4-dev`)
πŸ‘€ ✍️ πŸ“£

Install dependencies:
There are three main ways people experience notebooks, either as a viewer, an author, or as a publisher.

```
pnpm install
```
### Iterate Quickly

Run the dev version
πŸ’‘ πŸ”œ πŸ“˜

Starting a new notebook or loading an existing one should be a single click or command.

Once in the notebook, you need to be able to write prose, code, and get results quickly. Navigating between cells and iterating on ideas (and code errors!) should feel fluid and easy.

### Simplify Design & Development

🎨 πŸ‘₯️ πŸ—

We're building an integrated application (again). No more content refs, myths, or disparate component packages. One stable app. We'll approach this in a few ways:

* One notebook, one kernel per window
* Rely on Tailwind CSS and shadcn/ui for UI components
* Build on Tauri for performance and to join the growing Rust community

This culminates in the next item, which deserves it's own section: backend managed state.

### Manage document on the backend

πŸ“ πŸ–₯️

The frontend needs to become a simpler view of the notebook application state rather than managing kernel lifecycles and document state. We'll have the state managed by the Rust backend. This will include both the kernel lifecycles and document operations.

### Rapid Releases

πŸš€ πŸ•’

Aim to ship fast and early.

```
pnpm tauri dev
```


## Recommended IDE Setup

- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)

0 comments on commit 5fc4a79

Please sign in to comment.