When we were building out our first UI at Speedscale we wanted to get something up and running quickly. Fortunately there are a ton of options of web frameworks that can be used to throw together a quick “hello world” kind of application. However, a SaaS application needs a lot more than just displaying data. It needs to handle user authentication, loading data from a backend API, displaying data in a variety of formats, etc. After taking a look at several frameworks, we determined that react was good for us because of it’s popularity and a large number of add-ons. According to the StackOverflow 2019 survey, it was the 2nd most popular Web Framework.
However, building something complex in react requires a lot of components, so we wanted to find something that was built with react but already had several components. After testing a handful of options, we decided that react-admin would work well for us because it included: built-in datasource clients, theming, authentication, and OOTB support with Material UI which included access to tons of react components. This let us get off the ground with pretty basic UI where we didn’t have to do a ton of custom development:
However as time went on we ran into several limitations of react-admin that we needed to work around:
We had designs for a more expansive user experience and decided that we wanted to control more of the stack and developed a new UI based on react from the ground-up. Here is an example where we were able to put a lot of control around the style used for the documentation through the markdown-to-jsx library.
Although it’s still early in the project, we were fortunate that it only took us 3 weeks to start from scratch and develop the new UI with all the components that we wanted. This is a great foundation for us to build upon for the future.