Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/TypeCellOS/TypeCell
https://github.com/TypeCellOS/TypeCell
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/TypeCellOS/TypeCell
- Owner: TypeCellOS
- License: agpl-3.0
- Created: 2021-04-14T18:47:35.000Z (over 3 years ago)
- Default Branch: staging
- Last Pushed: 2024-05-22T08:39:26.000Z (6 months ago)
- Last Synced: 2024-08-02T16:55:12.749Z (3 months ago)
- Language: TypeScript
- Homepage: https://www.typecell.org
- Size: 42 MB
- Stars: 402
- Watchers: 6
- Forks: 25
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
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.# Features
- Open Source Notion-style workspaces and documents (powered by [BlockNote](https://www.blocknotejs.org))
- [Local-First](https://www.inkandswitch.com/local-first/) architecture built using [Yjs](https://github.com/yjs/yjs), with support for live multi-user collaboration
- Code Blocks for a live, as-you-type coding experience enabling [End-User Programming](https://www.inkandswitch.com/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](https://www.typecell.org/docs/manual/3.%20Reactive%20variables.md))
- Import NPM packages + types just by writing a regular `import` statementยป [Create your free workspace to get started!](https://www.typecell.org/)
# Documentation ๐
Read the docs and complete the interactive tutorial to get familiar with TypeCell:
ยป [Check out the docs and Live Coding Tutorial](https://www.typecell.org/docs/)
# Feedback ๐โโ๏ธ๐โโ๏ธ
We'd love to hear your thoughts and see your experiments, so [come and say hi on Discord](https://discord.gg/TcJ9TRC3SV).
# Contributing ๐
See [CONTRIBUTING.md](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](https://github.com/microsoft/monaco-editor): the open source editor that also powers VS Code
- [Yjs](https://github.com/yjs/yjs): CRDT for multi-user collaboration
- [MobX](https://mobx.js.org/): for our Reactive Runtime
- [ESM.sh](https://www.esm.sh/): for dynamic ESM imports from NPM
- [Typescript](https://www.typescriptlang.org/): for our compiler and language toolkitTypeCell is proudly sponsored by the renowned [NLNet foundation](https://nlnet.nl/foundation/) who are on a mission to support an open internet, and protect the privacy and security of internet users. Check them out!