With Silverstripe CMS 4, we modernised the way we build the frontend code for the CMS:
- We adopted yarn to manage our third party JS dependencies,
- We adopted React for some parts for of the CMS UI,
- We switch to using Bootstrap/Reactstrap for the CMS UI,
- We switch to writing our style sheet in SASS rather than plain CSS,
- We’re using GraphQL as the primary means of communication between the CMS frontend and backend.
We’ve also been phasing out some of older tech like:
- SS templates in the CMS administration area.
This is leading to some challenges:
- Our JS API is not as formal as our PHP APIt,
- We build lots of abstraction in our JS codebase, but we don’t have a good way of documenting how to use them,
Because it supports structure like interfaces and abstract classes, it would help us properly define how to interact with the Silverstripe CMS front end codebase. TypeScript can also explicitly warn us when we’re not using the correct types and provide better code hinting.
We haven’t made a decision yet. We’re curious to know what level of interest the Silverstripe community has with TypeScript. More generally, we would like to know how comfortable people are with customising the Silverstripe 4 CMS interface:
- Are you writing new React components and injecting them in the Silverstripe CMS?
- Are you overriding Silverstripe style and changing CMS behaviour with JQuery/Entwine?
- Are you overriding core Silverstripe SS templates?
Leave your thoughts on this thread and/or fill our Silverstripe CMS UI development survey.
We also have an RFC and experimental PRs that adds TypeScript support to Silverstripe CMS. Head over to GitHub if you would like to get your hands dirty and try it out.