I did look at QGIS but it seems to be limiting the custom functionalities we want to add on top of the map layers which is easily available over a JS library like openlayers.
I ruled out QGIS simply because of the fact that it's a native app and not a JS library.