compound is a fork of tldraw from the point at which it was still licensed under Apache 2.0.
The intention for this library simply put, is to continue to build upon the existing foundations and architecture, enhancing its capabilities where possible, but more importantly refining it further to provide a streamlined API and primitive for react applications in need of a whiteboarding component or interactive canvas.
The other mission of this library is to continue to offer a completely free for commercial use tool.
Compound's editor, user interface, and other underlying libraries are open source and available in this repository. They are also distributed on npm. You can use compound to create a drop-in whiteboard for your product or as the foundation on which to build your own canvas applications.
If you want to contribute to the library please first read the Contributing doc.
Found a bug? Please submit an issue.
To run the local development server, first clone this repo.
Install dependencies:
yarn
Start the local development server:
yarn dev
Open the example project at localhost:8080
.
The development server contains several examples that demonstrate different ways that you can customize compound or use its APIs. Each example is found in the apps/examples folder.
- eg:
localhost:8080
for the basic example. - eg:
localhost:8080/api
for the API example.
This repository's contents is divided across four primary sections:
/apps
contains the source for our applications/packages
contains the source for our public packages/scripts
contains scripts used for building and publishing/assets
contains icons and translations relied on by the app/docs
contains the content for our docs site at compound.dev
examples
: local development / examples project
assets
: a library for working with compound's fonts and translationseditor
: the compound editorstate
: a signals library, also known as signiastore
: an in-memory reactive databasetldraw
: the main compound package containing both the editor and the UItlschema
: shape definitions and migrationsutils
: low-level data utilities shared by other librariesvalidate
: a validation library used for run-time validation
Have questions, comments or feedback? start a discussion.
compound's pre-release packages can be found on npm: @cmpd
The source code for various apps and packages in this repository are licensed under Apache-2.0. These licenses are not subject to change.