I used to use AltSnap (https://github.com/RamonUnch/AltSnap) which works extremely well, and supports template snap zones.
Recently I wrote my own and now use that daily instead, which supports similar functionality (alt+drag) but also "zooming" in/out and panning around the desktop