Giter VIP home page Giter VIP logo

blocksuite's Introduction

BlockSuite

BlockSuite logo and name

Codecov Checks Status Issues Closed NPM Latest Release NPM Nightly Release Open in StackBlitz Open in CodeSandbox Join Discord


BlockSuite (pronounced "block sweet" ๐Ÿฌ) is the open-source editor project behind AFFiNE. It provides an out-of-the-box block-based editor built on top of a framework designed for general-purpose collaborative applications. This monorepo maintains both the editor and the underlying framework.

BlockSuite-based Editor in AFFiNE

BlockSuite-based Editor in AFFiNE

โš ๏ธ This project is under heavy development and is in a stage of rapid evolution. Stay tuned or see our roadmap here!

Introduction

BlockSuite works very differently than traditional rich text frameworks. Feature highlights:

  • ๐Ÿ“ Block-Based Editing: BlockSuite breaks down rich content into discrete contenteditable blocks, avoiding pitfalls using traditional monolithic rich text container.
  • ๐Ÿงฌ Intrinsically Collaborative: By harnessing the power of CRDT, any application built with BlockSuite effortlessly supports real-time collaboration right from the start.
  • ๐Ÿงฉ Framework Agnostic: With UI components implemented using Web Components, BlockSuite provides editors that can be easily embedded and eliminates the risk of vendor lock-in.
  • ๐ŸŽฏ Incremental State Sync: The state updates in BlockSuite can be incrementally encoded as standardized binaries, enabling efficient data synchronization over various network protocols.
  • ๐Ÿ“ Compact Rich Text: BlockSuite builds its own rich text component. With minimal responsibilities that benefits from the block-based architecture, this component is light, simple and reliable.
  • ๐ŸŽจ Hybrid Infinite Canvas: A high performance canvas-based renderer is also provided by BlockSuite, fulfilling needs for whiteboard functionalities.

Check out blocksuite.affine.pro for a detailed overview!

Resources

Getting Started

To learn how to start using BlockSuite, visit blocksuite.affine.pro.

Current Status (@blocksuite/editor)

For more detailed planning and recent progress, please checkout our GitHub project.

  • Basic text editing
    • โœ… Paragraph with inline style
    • โœ… Nested list
    • โœ… Code block
    • โœ… Markdown shortcuts
  • Block-level editing
    • โœ… Inline text format bar
    • โœ… Inline slash menu
    • โœ… Block hub
    • โœ… Block drag handle
    • โœ… Block-level selection
  • Rich-content
    • โœ… Image block
    • โš›๏ธ Database block
    • ๐Ÿ“Œ Third-party embedded block
  • Whiteboard (edgeless mode)
    • โœ… Zooming and panning
    • โœ… Frame block
    • โœ… Shape element
    • โœ… Handwriting element
    • โš›๏ธ Shape connector
    • ๐Ÿšง Grouping
  • Playground
    • โœ… Multiplayer collaboration
    • โœ… Local data persistence
    • โœ… E2E test suite
  • Developer experience
    • โœ… Block tree update API
    • โœ… Zero cost time travel (undo/redo)
    • โœ… Reusable NPM package
    • ๐Ÿšง Block schema

Icons above correspond to the following meanings:

  • โœ… - Beta
  • โš›๏ธ - Alpha
  • ๐Ÿšง - Developing
  • ๐Ÿ“Œ - Planned

Building

See BUILDING.md for instructions on how to build BlockSuite from source code.

Contributing

BlockSuite accepts pull requests on GitHub. Before you start contributing, please make sure you have read and accepted our Contributor License Agreement. To indicate your agreement, simply edit this file and submit a pull request.

License

MPL 2.0

blocksuite's People

Contributors

doodlewind avatar himself65 avatar lawvs avatar zqran avatar flrande avatar fundon avatar zuoxiaodong0815 avatar qishaoxuan avatar thorseraq avatar saul-mirone avatar saikasakura avatar alt1o avatar diamondthree avatar jimmfly avatar devlzl avatar regischen avatar donteatfriedrice avatar darkskygit avatar innei avatar pengx17 avatar pionxzh avatar perfectpan avatar fi3ework avatar tzhangchi avatar donaldxdonald avatar zzj3720 avatar blurname avatar fourdim avatar github-actions[bot] avatar colelawrence avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.