I've had good success in architecting/designing classical web-app (MVC-ish as overall architecture and minimum JS on front-end).
I can write unit-test with mocking and integration-test with in-memory database as part of my build/compile loop.
But I struggled a lot with front-end.