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.
If you need to render quite a lot of data look at one of the WebGL implementations, I switched from Leaflet to Maplibre GL for displaying around ~7k linestrings and saw huge performance gains.
5 comments
[ 3.8 ms ] story [ 26.5 ms ] threadOpenLayers 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.