As a young FinTech startup (± 2yo, 10 software developper), we are considering to adopt AG Grid as our main framework to display data table in our VueJS / GraphQL webapp. The licence is pricey and the learning curve does not look quite easy. Is AG Grid really worth it?
If you're a FinTech startup with 2 years under your belt, you have the latitude to adopt whatever you want provided it pays the bills (read: satisfies debt repayments).
You're already mired in deep inefficiencies with GraphQL and Vue, why not double down? You don't need to make a profit you just need to repay your debt until you exit.
You're under no obligation to pass savings onto your investors. Might as well do things as questionably as possible at all levels of stack.
It's not like they're going to call you out on poor engineering decisions so why worry about the details? Do whatever they think is "cool" and "neat", take their money, and when things look dire sell to a larger company who can absorb your losses. Just like everyone else.
If you're stuck on keeping it within Vue land, check out the DataTable in PrimeVue. It's far and away the best one after AG for full functionality: https://primevue.org/datatable/
I've used AG Grid at many of my companies and found it worth the price.
I've also dabbled in Perspective (https://github.com/finos/perspective), but it may be overkill for you. It was a fun project similar to SQL Workbench where data can be uploaded and consumed from a specific IWMS API for client-side analysis. It's quite powerful and open source.
Buggy around save and restore with complex scenarios like row grouping,
aggregations and server side row model.
Massive size of library, easily the biggest dependency in bundle. You need to
do some work in bundler to optimize into own immutable chunk.
Complex upgrade process. They release a new major version every year and if
you use a lot of features and have custom theme, this can be painful.
Mismatch with react. Ag Grid core is imperative. You will spend a lot of time
fiddling with columnApi and gridApi if your use case is complex enough.
Good:
Probably most advanced and feature complete grid implementation.
Framework-agnostic and well maintained. Given feature scope, it works surprisingly
well.
The problem with things like AG Grid is that designers and product people will try to invent weird things on top of it. I think as long you do not customize too much and use default features, you will be good.
Our latest release reduced our bundle size by 20-40% (depending on what features you're using) and we're planning on reducing this further over the next few releases: https://www.ag-grid.com/react-data-grid/modules/
Ended up with Ag-Grid after using a couple other data tables in the past and have been using it for 4 years or so. Still the best product in the market in my eyes.
Only you can decide whether it's worth it for you - this depends on how many of its features you can actively use.
I also do not find it crappy, as otherwise written here. API is pretty solid and mighty (still, only ever used it with vanilla JS, not with frameworks - things might feel different with frameworks) and documentation is good enough. Occasionally have to look up stuff in its sourcecode though.
Otherwise: There's an open source version. Unless you need the features marked as "enterprise" features, you can at least try out the integration already. There are some pretty elementary features like row grouping part of the enterprise version, though, so do not assume you'll be able to actually stay on the community edition.
I have used Ag Grid extensively for many years in financial sphere. I can tell you it is quite crappy as API, as documentation, support and in general as a product.
The problem is - what is the alternative? I haven't been able to find it and it is absurd you can make it yourself. I have thought about it and I almost made a conclusion that it is worthy doing a new commercial project.
We have extensively used AG Grid and highly recommended it.
The learning curve is actually quite low (as you identified).
We primarily use it with Stimulus JS and Alpine JS.
The trickiest part was writing server side code for supporting all the filtering pivots, aggregations and calculations in a manner that is both performant and secure.
Have a play with the community version first and if you’re liking it, checkout the enterprise version.
we use it extensively at work (we build financial dashboards for sage/xero ect so likely a fairly similar usecase),
when what you want cooperates with how it wants things its great. You'll find yourself battling it a bunch for anything custom, but we've tried quite a few others and its the best of the bunch.
table has two parts to it, displaying of data and datawrangling. If you separate datawrangling part to api or sql or arquero than displaying of data becomes quite simple. You may not need ag-grid like library.
You're already mired in deep inefficiencies with GraphQL and Vue, why not double down? You don't need to make a profit you just need to repay your debt until you exit.
You're under no obligation to pass savings onto your investors. Might as well do things as questionably as possible at all levels of stack.
It's not like they're going to call you out on poor engineering decisions so why worry about the details? Do whatever they think is "cool" and "neat", take their money, and when things look dire sell to a larger company who can absorb your losses. Just like everyone else.