&gt; You can just drop any old JS library and write a port for it (it will be async, though).<p>Actually, it&#x27;s pretty simple to wrap Javascript functions so that you can call them directly from Elm. See e.g. [0] which is called from Elm here [1].<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;elm-lang&#x2F;core&#x2F;blob&#x2F;master&#x2F;src&#x2F;Native&#x2F;Color.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elm-lang&#x2F;core&#x2F;blob&#x2F;master&#x2F;src&#x2F;Native&#x2F;Colo...</a><p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;elm-lang&#x2F;core&#x2F;blob&#x2F;master&#x2F;src&#x2F;Color.elm" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elm-lang&#x2F;core&#x2F;blob&#x2F;master&#x2F;src&#x2F;Color.elm</a>