Prisma uses the Community Edition of AG Grid for one of the key elements of the Prisma Data Platform (PDP): the Prisma Data Browser. The AG Grid based Data Browser allows users to edit, manage and easily access huge amounts of data from within their web browser.
AG Grid was selected amongst several other competitors after a thorough trialling process. It was found that competitor table and grid library providers didn’t have the customisable features or out-of-the-box functionality that AG Grid offers.
The Prisma Data Browser is a DataBase viewer, and has to handle a huge amount of data, and rendering everything on screen, at once, would lead to poor performance and excessive memory consumption. AG Grid solves this issue as it has built in row virtualisation, so it only adds rows that are displayed to the DOM, the rest are maintained in memory. For larger data sets AG Grid offers server side row models to pull data as required from server side calls.
Prisma also required a datagrid that they could cosmetically redesign to match their house style, and to create a positive user experience. With AG Grid, Prisma can add their own cell renderers and editors, customise headers, and allow users to choose between a light and dark theme.
AG Grid is also framework agnostic and doesn’t impose any constraints on how data or state is managed. This was a key aspect of consideration for Prisma, as they had invested time in making effective use of MobX as their React state management solution.
Luan van der Westhuizen, Senior Frontend Engineer, for Prisma, said, “We found that a lot of existing table libraries let us build basic features quickly, but most of them were hard or impossible to tweak to our liking. We had very specific kinds of behaviour in mind, and spent a lot of time in CodeSandbox experimenting with different libraries, before finding an out-of-the-box solution like AG Grid that fit all our criteria.”
Emily Morgan, Software Engineer for Prisma added, “Some of the libraries we evaluated gave us the whole table, and all we could do was tweak the styles; others didn’t render anything on the screen, so that left out the hardest parts up to us to implement, and others were just not built for inline editing the way we wanted.”