Thanks to visit codestin.com
Credit goes to github.com

Skip to content

lgazo/TypeCell

 
 

Repository files navigation

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)
  • Local-First architecture built using Yjs, with support for live multi-user collaboration
  • Code Blocks for a live, as-you-type coding experience enabling 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)
  • Import NPM packages + types just by writing a regular import statement

» Create your free workspace to get started!

Documentation 📖

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

» Check out the docs and Live Coding Tutorial

Feedback 🙋‍♂️🙋‍♀️

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

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
│   ├── 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: the open source editor that also powers VS Code
  • Yjs: CRDT for multi-user collaboration
  • MobX: for our Reactive Runtime
  • 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

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 79.0%
  • JavaScript 10.7%
  • CSS 8.9%
  • Other 1.4%