TypeCell is a monorepo containing several packages.
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
├── patches - patch-package patches
└── test-util - Data for unit tests
Node.js is required to run this project. To download Node.js, visit nodejs.org.
To run the project, open the command line in the project's root directory and enter the following commands:
# Install all required npm modules
npm install
# Initial build of all packages required by the main editor project
npm run build
# Start supabase
npm run start:supabase
# to stop docker containers later, run: npm run stop:supabase
# Start the local server
npm run start:server
# Start the main editor project
npm start
The above npm start
executes the vite dev
command of packages/editor
and watches for changes to this main package.
The codebase is automatically tested using Vitest and Playwright. When submitting a PR or issue, ideally try to add a test case for it.