I’ve come up with a name for this project too - Eco. It kind of stands for Elm Compiler Offline, or at least that is one way the name can be read.
I have an idea about tagging packages too, which I’ll explain in another post soonish.
So far discussion has mostly been around technical details of whether or not this can work with the Elm compiler unaltered.
I’m also interested to get some feedback on the bigger picture. Would this be useful to you or the organisation where you work? Do any of the use cases fit with things you find yourself wanting to do? Would it be a welcome addition to the overall Elm system?
===
I added some more example use cases around working offline, as definitely a motivation for this:
Working Offline
You grab your laptop and head out to the cabin in the woods, to get some peace and quiet and your work done. There is no internet there. Before leaving town you refresh the package server on your laptop, so that you have all the latest Elm packages - at that moment in time at least. As you work you are able to install more packages that your application comes to need as you work on it. They are cached on your laptop and you are able to browse their docs too through the package server UI.
Avoiding Productivity Outages
Back in town, a large development team at ACME corp is busy getting a new software product in shape for the pending launch date. You have a cache of all Elm packages running on the local network, and this is being updated frequently from the main public package site. You notice on Elm Slack that the main package site is down, users are getting anxious because the site admin is in the US Pacific Time Zone, and likely to be asleep. With a large team, ACME could be losing many man days of work in this scenario. The development manager at ACME is relaxed and happy today, her team are able to continue working from the local package server that she set up on the company network.