You don't have to reinvent all these systems, but in my experience, you still have to code a lot to wire these very generic building blocks up in a good way that fits your specific use cases.