# Tech Stack ## Language - [TypeScript](https://www.typescriptlang.org/) (if possible) - JavaScript (if needed for compatibility) ## Frontend - [React](https://reactjs.org/) - Has lots of documentation and libraries - Is customizable - Not the most simple to use ### Maps - [deck.gl](https://www.deck.gl) ![](https://raw.github.com/visgl/deck.gl-data/master/images/whats-new/mapbox-layers.jpg) - [react-leaflet](https://react-leaflet.js.org/) ![](https://i.stack.imgur.com/9rosK.jpg) - [OpenLayers](https://openlayers.org/) ![](https://i.imgur.com/et1fODJ.png) - [react-arcgis](https://github.com/Esri/react-arcgis) ![](https://user-images.githubusercontent.com/16542714/27751438-26e02b78-5d91-11e7-8e5d-9198cd390e57.jpg) ### Charts - [visx](https://airbnb.io/visx/) - Produces nice results - Might be a little heavy, if we have tons of graphics ![](https://madewithnetworkfra.fra1.digitaloceanspaces.com/spatie-space-production/20139/visx-1.jpg) - [canvas.js](https://canvasjs.com/) - Really simplistic, might not cover all of our necessities ![](https://i.imgur.com/n8FJ3iW.png) - [d3.js](https://d3js.org/) - Covers a lot of different types of charts, including maps - Difficult to use and complex ![](https://d3js.org/preview.png) - [Victory](https://formidable.com/open-source/victory/) - After doing a part of the tutorial it doesn't seem to be too hard to use - Made to be used with React - Supports several types of charts - Nice looking results ![](https://i.imgur.com/QyAxZ28.png) - There is a [wrapper](https://reactjsexample.com/a-wrapper-around-victory-js-and-it-makes-charting-easier/) that supposedly reduces boilerplate but I'm not sure if it's really worth it - [Chart.js](https://www.chartjs.org/) ![](https://cdn.mos.cms.futurecdn.net/S5bicwPe8vbP9nt3iwAwwi.jpg) ## Backend - [Express.JS](https://expressjs.com/) - [Node.js](https://nodejs.org/en/) ## Database - [Neo4j](https://neo4j.com/) - Most popular graph database (more learning resources) - High performance - Free community edition - [ArangoDB](https://www.arangodb.com/) - Multi-model (can use graph, document, key-value models among others) - Free community version