ac009527 / TypeCell

Home Page:https://www.typecell.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeCell

Welcome to TypeCell! An open source live programming environment. Together, we want to make it a lot easier to build software, and ultimately to understand, build and share knowledge.

Discord Matrix

TypeCell demo

Features

  • Open Source, cell-based notebook environment
  • Same, powerful editing experience as VS Code
  • Full TypeScript support! (no weird custom language constructs)
  • Reactive Runtime, cells automatically re-evaluate when their dependencies update (learn more)
  • Import NPM packages + types just by writing an import statement
  • Support for real-time collaboration (using Yjs)
  • Runs on top of Matrix using Matrix-CRDT.

Try the Tutorial to get started!

Documentation πŸ“–

Tutorial

Complete the tutorial to get familiar with TypeCell:

Β» Interactive introduction

Manual

We've written about the main functionality of TypeCell in the manual:

Demos

Another good way to learn is to check out some notebooks from our community:

Β» View demo notebooks

Feedback πŸ™‹β€β™‚οΈπŸ™‹β€β™€οΈ

We'd love to hear your thoughts and see your experiments, so come and say hi on Discord or Matrix.

Contributing πŸ™Œ

See 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
β”‚   β”œβ”€β”€ common          - Utility functions shared across the codebase
β”‚   β”œβ”€β”€ editor          - The main React application
β”‚   β”œβ”€β”€ engine          - The live-code execution engine
β”‚   β”œβ”€β”€ packager        - Tool to bundle TypeCell notebook apps (WIP)
β”‚   └── parsers         - Helpers to convert to / from TypeCell notebooks
β”œβ”€β”€ patches             - patch-package patches
└── test-util           - Server and data for unit tests

The codebase is automatically tested using Vitest and Playwright.

Credits ❀️

We build on top of some really great technologies:

  • Monaco: the open source editor that also powers VS Code
  • Yjs: CRDT for multi-user collaboration
  • MobX: for our Reactive Runtime
  • Matrix: the backend of TypeCell.org is a single Matrix instance, using Matrix-CRDT to store and collaborate on "documents as chat rooms"
  • ESM.sh: for dynamic ESM imports from NPM
  • Typescript: for our compiler and language toolkit

TypeCell is proudly sponsored by the renowned NLNet foundation who are on a mission to support an open internet, and protect the privacy and security of internet users. Check them out!

NLNet

About

https://www.typecell.org

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 83.8%Language:JavaScript 8.3%Language:CSS 7.5%Language:HTML 0.4%