Vision
Though Blocks is currently in its early stages, we have a lot of ambition for this project. We're also looking for contributors to help shape its future, so please get involved on GitHub!
We want to make working on the web more visual. The Blocks alpha is our first step towards trying to achieve that.
Blocks JSX editing format specification
We see Blocks as a universally applicable library for visually editing JSX. We want other tools in the design and development space to leverage this as a library (at any layer of its architecture) and help us build a robust, community solution.
Sharing implementation details amongst products
If you're building a product that can leverage Blocks we welcome that! We didn't set out to create "yet another page builder", but we couldn't find anything that read in production JSX.
There's a long road ahead to support more and more variations of JSX. We should solve this together.
Built with accessibility in mind
Blocks isn't anywhere near as accessible as it should be. We plan on investing substantial time in making sure it's a shining example for projects with complex user interactions.
Addressing accessibility issues will always be top priority.
Integrating with data
Blocks doesn't currently have a data layer. In the future we'd like to provide a mechanism to attach Blocks to other data sources, whether that's a Pokémon API, a GraphQL endpoint, a CMS, or a JSON file on GitHub.
Library for AST transforms
We'd like for Blocks to expose an AST transforms library that consists of low-level utilities that can be used in other tools or completely custom UIs.
Styling
Blocks is currently tightly coupled to Theme UI in the proof of concept. However, we plan on exposing an API for other libraries and design systems to expose a way to change styling (in addition to controls).
What about framework X?
Ultimately, anything that speaks JSX will be able to be usable in Blocks. The proof of concept is React specific, but we intend on support other frameworks like Preact and Vue.
A collection of block components
Whether you're using the Blocks editor or not, we also want to offer a collection of high-level components that can be used in your projects.
Features, features, features
Development for Blocks is woefully incomplete at this point. There are tons of features that still need to be added. We welcome requesting new features as well on GitHub.