There's usually no right or wrong answer - it's all about tradeoffs. I personally prefer to keep the stack and architecture as simple as possible, but many others prefer to rely on 3rd party code as much as possible, regardless of added complexity. Sometimes my choices bite me (I have to reinvent more wheels than I was expecting), sometimes the too-many-layers-of-abstraction approach will bite too (like errors you have no idea why they happen).
Compare different solutions available to the same problem, understand their tradeoffs, and then pick what better aligns to the needs of your project. If you're working with a team, you probably will not be making that decision alone, but the process could be the same.