I work on a project where we will need a lots of custom development (backend module, inspector editors, …). Currently our component are coupled with React, and I think we can be more open on the reusability of our components.
For example a backend module can be done in Fluid, React, Vanilla JS, … and we should not enforce React, if the customer is more confortable with framework X, or don’t like framework at all it MUST be possible to resuse our components, without the need to rewrittes and maintains those component in technology X.
In our case, we use a lots Elm for our frontend, so we have a lots of module that provide abstraction on top of our API. We want to be able to use Elm for our backend module. We start a prototype and it works nicely, but we have to “convert” of the component to something compatible with Elm. It’s a lots of efforts … for no additional value for our users.
Web Component look like the perfect candidate to solve this issue. React, Elm and any other JS based stack works nicely with Web Components. And in a near future, all majors browser will have native support for Web Components.
So my proposition is to convert all our resusable components (button, drop down, tab, table, …) into Web Components. This project can support the creation of our Design System, or at least a nicely documentated Styleguide of the components that we have.
The Ionic team build Stencil (https://stenciljs.com/) as a foundation of Ionic4, this is a solid implementation of web compontent (IE11 and all evergreen browser supported). I want to start a project to convert step by step all of our component based on Stencil. Stencil is TypeScript + JSX based, so quiet easy to work with and looks solid.
I’m really happy to have your opinions on this project ?
Ping @bwaidelich, I know that your did some research around Web Components.
This project can have a lots of benefit for the Neos community:
- A good documented styleguide of all our components
- Reusable components, framework agnostic
- A good separation of styles and behaviours in our React components
- On step in the future of the web