Continuing on the previous post of Don't reinvent the wheel and when it is applicable.
Let's look at the other 2 pointers:
3.❓Do you have resources (time, budget, team) to build things from scratch?
4.❓Is your team skilled enough to pull off the non-functional part?
Think of it like building interior, or more specifically, furniture for your home.
You can either buy the plywood, raw materials directly. Then cut it, shape it, color it and assemble it.
But this method takes a lot of time, money and labour.
Building & assembling (functional) part is still not very complex and you can still get it done.
But what about the other (non-functional) part ?
❓ Did you take measures to prevent toxic mold growth which is hazardous to health?
❓ Did you apply chemicals and preservatives on the wood so that the furniture would be resistant from termites and other insects?
❓ Did you apply the varnish, other stuff required for the furniture to last long and protect from moisture/water?
❓ Do you know exactly whether your furniture would be able to bear high weight and it won't break when your kids are jumping and playing around on them?
You see where I am going with this.
Same is applicable to building Software from scratch. It takes more time, money, and people/team to build everything from scratch.
Not to mention that you must also take care of the non-functional parts like security, scalability, reliability, maintainability and much more.
Hence, it is in your best interest to leverage existing solutions if you don't have the above resources.