Leaflet.js is your best bet. It is quick to start, has tons of plugins and can do a lot out of the box.
OpenLayers is probably a little more customizable, but has a steeper learning curve. If you're using PostGIS, you can probably handle much of the less common spatial manipulation there and use Leaflet to render, rather than the client side.
Comments
Leaflet.js (I've used it through the R and Python libraries)
Leaflet.js is your best bet. It is quick to start, has tons of plugins and can do a lot out of the box.
OpenLayers is probably a little more customizable, but has a steeper learning curve. If you're using PostGIS, you can probably handle much of the less common spatial manipulation there and use Leaflet to render, rather than the client side.