I actually think a lot of the things that were very difficult are much better now.
For browser incompatibilities we used to have to hand write CSS. We now can use normalizers and autoprefixer on build, including reading from a browserslist file, so it only includes what's necessary. Same thing for JS; instead of including a dozen hand written polyfills, babel-preset-env will only include what I actually need for the same browser target list.
People complain that now we need a while bundler, and that's correct, but it's a needed step. In reality, the easy things might have got a bit more complicated because you need an organized build instead of just a simple HTML, but the difficult things got way easier. And I'm ok with that.