TypeCellOS / TypeCell

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

https://www.typecell.org

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 78.5%Language:JavaScript 10.9%Language:CSS 9.1%Language:PLpgSQL 1.0%Language:HTML 0.5%Language:Shell 0.1%