All you need to be a "PWA" is a manifest.json and a service worker. There's not many differences from a plain website, you could easily do that with Elm. If you need some special features you can do with JS and ports.
Elm (almost always) doesn't swallow errors, it actually requires you to handle them. You could just ignore them but you would have to do so knowingly. For instance, if you're getting the first element of the list it won't just give you the item or Null it will give you a `Maybe value` which requires you to write conditional logic around the "nothing there case" and the "something there" case to get the value out. Not doing so would not compile.