I tend to lean towards a much more heavy E2E testing suite with fewer unit tests. While unit tests are useful to replicate some scenarios, the users will interact with the system as a whole and not a particular class/function in isolation. Unit tests that pass are generally not a good indicator that the system works as a whole.
If it's a micro-service architecture, I would start by
I did use snapshot tests for a mobile application. While being useful in some scenarios, it was a massive pain to maintain. The app was changing so rapidly, it almost made the snapshot testing seem pointless. At scale though, I think this is very useful for checking how your app/website is rendering on the mobile (not so much for the web because form factors are more standard).