thredUPContent Management System
In my final performance at thredUP all the previous works came together to create a visually-driven CMS authoring system. The monorepo abstraction allows us to iterate on components quickly. The PWA consumes these components to create a consistent user interface which is based on the Style Guide abstraction.
We can now use these small UI Packages as building blocks to create more complex pages and layouts. This is done via a highly visual and interactive UI with live updates, drag and drop, and custom input widgets.
Technical Overview
Obviously, there is a LOT more to the actual implementation but conceptually it's really simple. We read the TypeScript interface of the component we'd like to make available within the CMS. From this, we generate a JSON Schema which we can use to generate a form and validate the form data. Using comments we're also able to annotate default values and additional validation rules, it's really slick!
For more details take a look at the excellent writeup done by my former colleague Pierre on Medium.