At CurrySoftware we run a fork of the Elm compiler which merges this PR and has a feature to use ports and the debugger with `elm reactor`: https://github.com/CurrySoftware/compiler
It is pretty much fully featured as what you would need in any typical web-app.
One crucial thing that is missing is guaranteed browser support. That is why we only used it for the clients internal frontend. But as I understand it, this will be addressed in the upcoming 5.0 release.
Also the resulting HTML is not always as optimal as I would hope.
All in all development is just so much faster and cleaner. No need to worry about layout and style. After using style-elements for a while, HTML + CSS seem like a really stupid idea to describe layout and style.
I have a vastly different experience:
At CurrySoftware we used style-elements[1] to build a internal frontent for a client.
The whole project only contains 15 lines of HTML that sets up the elm-app. Zero CSS or other HTML.
Try it out. IMO it changes everything about frontend development.
Also this approach allows very simple integration into code.
I.e. in rust:
pub fn telegram(msg: &str) {
use std::process::Command;
if let Err(e) = Command::new("telegram").arg(msg).status() {
println!("Error occured while calling the telegram command! {:?}", e);
}
}
Ever tried changing an owned field in a struct to a borrowed one with lifetimes?
Be prepared to change not only the struct and its fields but also everything else where it appears.
Yes, the compiler will catch your mistakes, but no, it's not something I love.
There is a PR for that already, but it has not yet been merged: https://github.com/elm/compiler/pull/1850
At CurrySoftware we run a fork of the Elm compiler which merges this PR and has a feature to use ports and the debugger with `elm reactor`: https://github.com/CurrySoftware/compiler
And an example how to use it here: https://github.com/CurrySoftware/elm-reactor-example