If you've already made any design decisions or need to do something differently than Amplify expects, it is a minor nightmare. It generates multiple local copies of templates for nested cloudformation stacks and doesn't really support manual editing. The basic Amplify CLI commands entirely abstract away what's actually happening with the AWS APIs. "Ejecting" takes loads of time to basically reverse-engineer the Amplify CLI, clean up the generated templates, and then create your own build process that you can tweak.
It would be much easier to recommend Amplify if it wasn't so far removed from the underlying AWS APIs and it provided an easy way to modify those API calls or templates instead of being stuck within its guard rails.
AWS really needs more centralized decision-making. It feels like individual product teams are allowed to go way off in the weeds without any frame of reference for whether their solutions make sense when plugged into the full suite.
I can't complain too much, it's a bit of job assurance for folks like myself that specialize in only AWS. Exhausting keeping up to speed on everything though.
the one use case i do like it for is hosting simple static sites (eg. jekyll based sites).
that being said, i do like the amplify javascript sdk, especially the auth library and react components: https://aws-amplify.github.io/docs/js/api
best part is that you can use the components without using the amplify service/console