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.
import
statementยป Create your free workspace to get started!
Read the docs and complete the interactive tutorial to get familiar with TypeCell:
ยป Check out the docs and Live Coding Tutorial
We'd love to hear your thoughts and see your experiments, so come and say hi on Discord.
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.
We build on top of some really great technologies:
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!