What JavaScript framework would you recommend to make dashboards
March 16, 2021 3:22 PM   Subscribe

I need to make some dashboards and data mashups. It's been over a decade since I've done front-end work. Between Vue.js, React, and Angular (or jQuery), which would you recommend for small applications whose main job will be to display JSON data in a relatively pretty way?

The last time I did serious front-end work, I wrote my own AJAX library because there weren't any major ones at the time and you still had to do horrible kludges in CSS to get rounded corners. I'm aware of the big three and have done initial research into them.

I need to create some simple web apps to use APIs on the backend to supplement what's available through the normal interface for some applications. Handing the work off to or working with a dedicated front-end developer is not an option at this time; I need to be a team of one to create prototypes that if they end up being highly useful would be handed off to a separate team for the long run. Other things might just need to be useable for a few months until the vendor can get around to an official implementation of our needs. These will be entirely internal use only apps.

Examples:

* The normal interface makes getting information about a specific thing that can be looked up by unique ID (that is already known by the user) a pain with multiple steps/pages to get access. The app I'd write would provide a simple front-end to enter the unique ID and display the data to the user, with a little formatting needed.
* Pull information from two or more other applications and combine it in a useful way in the back-end and then display it to the user.
* Create a dashboard of information that's not available through the normal user interface.

Considerations:

* I want it to be one of the big three to help ease turning it over. The teams that would be assuming permanent ownership of the code have not standardized on any of them but I don't want something super obscure. I suppose jQuery could also be considered in-play.
* The ideal library would have good support for various visualizations for the dashboard type stuff as part of the core library and/or common plugins. I can use a visualization library in the back-end if necessary, but the overall desire is to have an API-first design with the UI decoupled from the back-end.
* Relatively easy to create a user interface. I don't want to go back to doing front-end development and do edgy stuff with CSS but would like something that makes creating a simple UI as painless as possible. Serviceable is more important than perfection.
* I have no experience with TypeScript, JSX, etc. I do have experience with typed languages.
* Support for IE 11 and Chrome is required. FireFox, Edge, and Safari are nice-to haves but not crucial. Older versions of IE are a non-factor.
* The backends will be Python or Go; I'm not interested in Node.

Not a consideration:

* I don't need to fluff my resume, so usefulness is more important than trendiness.
* These apps will not be used on mobile devices, so responsive design, being able to make a native app, etc. is unimportant.
* I'm not interested in calling the APIs directly from the front-end for various reasons.
* Users will not be doing any kind of data entry other than something like an IP address or similar short string, so fancy editors don't matter. Everything will be read-only.
* Performance isn't a huge factor as long as it isn't horrifically slow to do something like render a chart.
posted by Candleman to Computers & Internet (6 answers total) 4 users marked this as a favorite
 
Why write your own when Grafana will aggregate data sources, make dashboards and summarize for you?
posted by k3ninho at 3:26 PM on March 16, 2021 [1 favorite]


Vue.js if you want to build your own. As far as IE11 compatibility, it kinda depends on which additional libraries you use. Microsoft has officially dropped support for IE11, as well as the non-chromium Edge, so you should consider seeing if you really have to support it.

But also, maybe consider an existing product if all you're doing is dashboards. The keyword to use is BI - business intelligence software.
posted by pyro979 at 3:44 PM on March 16, 2021 [1 favorite]


I'd use React.
posted by johngoren at 3:51 PM on March 16, 2021 [2 favorites]


I would use React, since you'll likely have the easiest time handing it off that way. I'm not sure it's going to matter terribly much, however, since you'll probably want to use a charting library to handle the actual visualizations (something like hicharts, or d3 if you want to get more into the weeds). That library is going to be doing most of the heavy lifting, and they tend to have integrations for all three frameworks.
posted by Ragged Richard at 5:09 PM on March 16, 2021 [2 favorites]


At a previous job I built a pretty good prototype of one of these using React and Victory, a library of charting components. We ended up rolling our own for performance reasons, but Victory was certainly good enough at what it did and I'd recommend it.
posted by wanderingmind at 11:34 PM on March 16, 2021


Quasar (which is based on Vue.js) and the graphing library of your choice. I've been doing a lot of work in it recently and it would be super easy to get going on.
posted by jferg at 8:41 PM on March 17, 2021


« Older Looking for a quote, possibly by Donald Rumsfeld   |   Finding a analog watch that displays digital-like... Newer »
This thread is closed to new comments.