It isn't. It's explicitly designed as a purely web front-end language, that's its scope.
Of course, many Elm users like to run another ML-family language in the backend as well. Haskell's Servant backend library, the one used in this article, has a project to automatically generate Elm client code [1]. Elixir is popular as well.
But in general, I'd say that any backend framework that can provide an OpenAPI spec will work well, as you'll be able to auto-generate most if not all of the Elm client code (which is normally dull work and one of the main complaints about Elm).
> in terms of learning materials there isn't much compared to haskell.
To whet your apetite, see https://elm-lang.org/
Then read through the excellent https://guide.elm-lang.org/ - not very long but absolutely enough to hit the ground running.
I know that Elm works great for front end but how is it for desktop and backend stuff?