It seems like every few months, I discover something great that I wish I’d known about earlier… I’m listing a few I’ve been using, and am curious what else is out there
Also (or in particular), what are your recommendations for compression after compiling with --optimize? The Elm guide mentions uglify; there’s also elm-minify, which says it’s deprecated in favor of the Google Closure Compiler. (There was at least one thread about this in the past. …)
There are a lot of neat tools coming out lately. elm-coverage is a wonderful tool, and I don’t think it’s widely known. I think there are many other tools like that! Here are a few others that I really enjoy and use on a regular basis:
elm-review - it’s like elm-analyse (which is no longer maintained I believe), but it is made to be a platform where the community can build all sorts of custom rules and autofixes. It’s an excellent tool, highly recommended! There’s already a vibrant ecosystem of great Rules you can setup, and it’s only going to get better. We did a couple of Elm Radio episodes about elm-review as well (episode 3 and episode 21)
Elm Debug Helper is a Chrome plugin for nicer formatted Debug.log output of Elm data types
elm-json is a command line tool that’s the de facto way to install Elm packages and upgrade dependencies, but this isn’t easy to discover that for newcomers.
Handy Web Codegen Tools
html-to-elm.com/ - this is a tool I built for turning HTML and SVG into Elm. There have been other tools like this in the past, but I tried to polish some of the rough edges of past tools, as well as add support for generating code for elm-tailwind-modules
There are a lot of “Types Without Borders” category tools (keeping a type-safe bridge between domains). Here are some of my favorites (I’m a bit biased on some of these )
There are several tools that Elm package authors use, but they are sort of implicit knowledge that people pick up by word of mouth.
elm-doc-preview (it’s a CLI tool for live reloading documentation on your local machine, as well as a web site for sharing work-in-progress docs before you publish a package version) elm-verify-examples - allows you to run elm-test test cases by defining examples with the expected output in your Elm package’s docs. This is important because it helps you keep your docs in sync as “living documents.” elm-publish-action - helps automate running elm publish within your CI pipeline so you can run it after your CI passes
Summary
I’m probably missing tons of cool tools. These are just the ones that I find myself reaching for often.
I’d love to hear from other people about what their favorite gems are out there (I know there are a lot more!).
In addition to those already listed, you can give a try at elm-test-rs as an alternative to elm-test if you want capture of Debug.log or try to avoid npm.
I can also recommend elm-tooling-action to complement elm-tooling-cli in a GitHub CI. I’m a bit biased since I made those two tools ^^ (elm-test-rs and elm-tooling-action).
There is also the elm language server which is the best way to have a great coding experience when using VS Code or Vim.
not elm tools, but as you asked for optimize explicitly, it seems like quiet some people are using parcel for packaging and terser seemed to be the way to go the last time I checked when it comes to minifying.
One of the technical limitations with it for Javascript-folks has been code-splitting, but as Elm goes for small single build-output, I think it does everything you we want well.
I’m pretty sure Evan Wallace is working on code-splitting at the moment, but can’t remember.
I’ll be doing a benchmark on available tooling against realworld-example in terms of bundling/minification this week. I’ll try and remember to post it here.
Thanks for the feedback, I’ve added a few to my list!
I wonder if there is some enhancement to the official package list that could help with discovery and filtering as the community grows (e.g. download counts or ratings like Hackage)…