---
# System prepended metadata

title: Tech Stack

---

# 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
