Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/TypeCellOS/TypeCell


https://github.com/TypeCellOS/TypeCell

Last synced: 4 days ago
JSON representation

Awesome Lists containing this project

README

        



TypeCell


Welcome to TypeCell, where Notion meets Jupyter Notebooks - all open source. TypeCell is a fresh take on what documents and software can look like. Together, we want to make it a lot easier to build software, and ultimately to understand, build and share knowledge.


Discord



TypeCell demo

# Features

- Open Source Notion-style workspaces and documents (powered by [BlockNote](https://www.blocknotejs.org))
- [Local-First](https://www.inkandswitch.com/local-first/) architecture built using [Yjs](https://github.com/yjs/yjs), with support for live multi-user collaboration
- Code Blocks for a live, as-you-type coding experience enabling [End-User Programming](https://www.inkandswitch.com/end-user-programming/)
- Same, powerful editing experience as VS Code
- Full TypeScript and React support! (no weird custom language constructs)
- The Reactive Runtime makes sure code blocks automatically re-evaluate when their dependencies update ([learn more](https://www.typecell.org/docs/manual/3.%20Reactive%20variables.md))
- Import NPM packages + types just by writing a regular `import` statement

ยป [Create your free workspace to get started!](https://www.typecell.org/)

# Documentation ๐Ÿ“–

Read the docs and complete the interactive tutorial to get familiar with TypeCell:

ยป [Check out the docs and Live Coding Tutorial](https://www.typecell.org/docs/)

# Feedback ๐Ÿ™‹โ€โ™‚๏ธ๐Ÿ™‹โ€โ™€๏ธ

We'd love to hear your thoughts and see your experiments, so [come and say hi on Discord](https://discord.gg/TcJ9TRC3SV).

# Contributing ๐Ÿ™Œ

See [CONTRIBUTING.md](CONTRIBUTING.md) for more info and guidance on how to run the project (TLDR: just use `npm start`).

TypeCell is organised as a monorepo containing several packages. Directory structure:

```
typecell
โ”œโ”€โ”€ packages
โ”‚ โ”œโ”€โ”€ editor - The main React application
โ”‚ โ”œโ”€โ”€ engine - The live-code execution engine and Reactive Runtime
โ”‚ โ”œโ”€โ”€ frame - sandboxed iframe where end-user code evaluates
โ”‚ โ”œโ”€โ”€ packager - Tool to bundle TypeCell notebook apps (WIP)
โ”‚ โ”œโ”€โ”€ parsers - Helpers to convert to / from TypeCell documents
โ”‚ โ”œโ”€โ”€ server - HocusPocus + Supabase server for storing documents
โ”‚ โ”œโ”€โ”€ shared - TypeCell specific models shared across the codebase
โ”‚ โ”œโ”€โ”€ shared-test - Helper functions shared across the codebase for unit tests
โ”‚ โ”œโ”€โ”€ util - Generic helper functions
โ”‚ โ””โ”€โ”€ y-penpal - yjs transport for crossdomain / crossframe communication
โ”œโ”€โ”€ patches - patch-package patches
โ””โ”€โ”€ test-util - Data for unit tests
```

The codebase is automatically tested using Vitest and Playwright.

# Credits โค๏ธ

We build on top of some really great technologies:

- [Monaco](https://github.com/microsoft/monaco-editor): the open source editor that also powers VS Code
- [Yjs](https://github.com/yjs/yjs): CRDT for multi-user collaboration
- [MobX](https://mobx.js.org/): for our Reactive Runtime
- [ESM.sh](https://www.esm.sh/): for dynamic ESM imports from NPM
- [Typescript](https://www.typescriptlang.org/): for our compiler and language toolkit

TypeCell is proudly sponsored by the renowned [NLNet foundation](https://nlnet.nl/foundation/) who are on a mission to support an open internet, and protect the privacy and security of internet users. Check them out!

NLNet