Custom modules are pretty powerful, and after using them for years I think they can do many things well, but not everything. If it is a simple customization I would give the custom modules a try. But if it is a complex need I could see going SPA app as well.