PostGIS is popular and fine, but is there a front end framework available designed to work with it, so that one can fully avoid the proprietary ESRI stack?
Mapbox is the probably the best GL based mapping client but it is no longer free on the latest version. Although, its not designed to work with PostGIS explicitly you definitely can. (i.e. querying mvts, map tiles, through PostGIS)
Leaflet as others have said is another good option, but is really made for old slipply map tiles.
Most of the ESRI based web clients I think look and feel terrible IMO. Rendering just looks off. What features are you looking for in a mapping client?
If you are doing analysis and exploration, or creating offline reports, QGIS is worth learning. It can connect to and query a PostGIS backend directly, and doesn't need to do any sort of intermediate translation and storage that I've seen other packages require. It's scriptable, and extremely flexible -- I've used it to create reports and artifacts to share externally. Overall a solid example of spectacular open source software.
While QGIS is ok, for many applications including analysis and making reports. It is not particularly suited if you want to embed a map view in another application, or to build a full custom front end to render map views.
There's https://www.qgis.org/en/site/ but when I've worked with web based projects we've used Django and made a custom UI for it. It depends on what type of data you want to display though, for us it was map data so we just used https://leafletjs.com/
PostGIS can write to GeoJSON so you can have a simple flask or bottlepy webserver to query the db. Then use leaflet GeoJSON layer to pull down the data and render it on map.
There is of course the newer vector tiles which is a better solution in many situations but a bit more complicated to get going. Crunchy Data have made some good examples and a nice tile server for this.
Leafletjs was the only oss frontend option back in 2015-2016 when we ditched Esri and created our own in-house app, based on Electron. Apart from Mapbox, which was freemium.
It's been around for a long time and is really powerful when compared to other open source web-based mapping/GIS options - unfortunately I never really need the advanced features in the projects I tend to work on.
I recently built a prototype with GeoDjango & it seems productive.
Queries & plots are relatively straightforward. Creating custom forms to edit map data is harder to figure out. The tutorials I found focus on the Django admin, but don’t explain how to create user-facing forms for site visitors.
Anyone know of good GeoDjango tutorials (or well documented examples) for forms?
- update the location of a point with drag and drop
Desktop: https://qgis.org
Middleware: https://mapserver.org, https://geoserver.org, https://mapnik.org, https://github.com/crunchydata/pg_tileserv, https://github.com/crunchydata/pg_featureserv
Web UI: https://openlayers.org, https://leaflet.org, https://www.mapbox.com/mapbox-gljs