Another commenter mentioned the lack of an extension framework and that applying patches could lead to conflicts, but I think this misses a bigger point. If you find yourself applying a ton of patches, just stop, dwm is supposed to be about minimalism and frugality, do you really need those features? I am very happy and productive with three patches: statusallmons [1] (~5 SLOC), warp [2] (~10 SLOC), and my own not-yet-public Fibonacci-style layout algorithm with a bit more features to support multi-head setups nicely (~90 SLOC). That is it! Keeping it simple may have seemed madness to me a year ago, but I think I now “get it” in terms of the freedom it brings through lower complexity, greater understanding, and thus ultimately hackability.
[1]: https://dwm.suckless.org/patches/statusallmons
[2]: https://dwm.suckless.org/patches/warp
Look at warp for a genius example of dwm simplicity. Other WMs will track the mouse pointer on a per-display basis and I was tempted to implement this for dwm, but then I tried the warp patch which is stupidly simple: move the mouse pointer to the centre of the currently focused window if it is not already inside it. No need for state and together with xbanish [3] you will always know where the mouse pointer is, yet it will not interfere with you while you work. ~10 SLOC, yet so incredibly powerful because it managed to take a novel stab at the heart of a problem.