My first Elm web app and experience

I have been creating some web apps using ExtJs and later Webix, so, classical javascripts libraries/frameworks. My back-end programming language was already functional, using F# and I was completely convinced that also for the front-end I should be using a functional language. What at first put me off using Elm was the lack of UI libraries like the ones I was used to. I have little Html and css knowledge and no desire to program my own ui components like editable tables and trees.

Then I tried to build something using Elm and plain Html with css. Was not satisfied and tried elm-bootstrap, elm-mdl. The problems I encountered was the lack of continuing support for these packages and some other issues, like elm-mdl prohibiting the use of the time debugger feature of Elm.

Finally, I gave elm-style-elements a try. And this really is extremely promising. I managed to migrate my mdl looking project to a similar look using my own style-sheets: http://genapls.azurewebsites.net.

So, I am very satisfied with Elm thus far. I also feel that with elm-style-elements you really can create a great looking web app comparable with existing ui libraries. The only thing that bothers me a bit is the uncertainty whether packages will be supported in the future. The F# community has its community supported libraries which gives some confidence they will be maintained and upgraded. For example the elm-style-elements would be a great community supported package.

To conclude, I am really happy using Elm!

7 Likes

That is awesome to hear you are enjoying Elm!

I also share your concern over package uncertainty at times.

We should take a page from Rust’s book and maybe twice a year have a community effort to focus on package updates/tweaks/enhancements together. Libz Blitz - I thought that was really cool.

5 Likes

that’s a really cool idea! Maybe we should do this after 0.19 to get everything in top shape? It sounds like it might be getting close.

6 Likes

Yeah that would make a lot of sense… I’m probably too new / inexperienced with Elm to try and spear head something like this, but should we as a community organize around this idea, I’d definitely try to contribute wherever I could :slight_smile:

1 Like

I like this idea, lets start a thread for it?

So, I have just discovered Elm and before I install it my first question was, like yours, do I have to code up my own components for a tree, grid, form, searchable combo box, etc? Googling didn’t find anything.

Is that the case or are there libraries for that hidden somewhere? It seems like a huge gap to me if I have to hand code components from scratch. I must be missing something here.

Thanks,
Murray

If you want off the shelf components there are component libraries like https://aforemny.github.io/elm-mdc/

Thanks. I was hoping for something with more functionality like https://examples.sencha.com/extjs/6.2.0/examples/kitchensink/#tree-grid

I build data intensive apps with extensive business rules so need components to support that. It is not about the visual look, it is about interactive functionality in my case. That functionality takes a long time to build and is often error-prone in JS so Elm looks like a good approach. But not for a complete novice, I suspect! :slight_smile:

Thanks,
Murray

Elm seems like a great fit for something like that! Hang out here and the Slack and I doubt you’ll be a novice for long = ).

If you have a deadline and you need all that stuff that YUI or ExtJS used to provide I’d consider something other than Elm since the notion of components isn’t really a thing. For improving your skills and mindset Elm is the perfect fit :slight_smile: just beware of frustration coming your way if you expect batteries included. Happy Coding!

Note that the Material Design Lite project itself was abandoned. Its successor is Material Components for the Web for which there is a supported Elm implementation. So I would say this was not an example where community support failed, simply the library it relied on went away.

On community support: I’m very sure many library authors are happy to do paid support.

Yeah, currently there isn’t anything giving you trees, grids, or type ahead stuff. The first two are hard, the last one isn’t really.

I.e. we’re not at the stage where you can replace a Sencha Ext JS app with Elm. But you can combine the two using ports. Elm doesn’t need to control the page.

Thanks. Good to know. It might be useful to add a list of known Elm component libraries to the project docs so we can “watch the space” for developments. A good component library for rendering and interactive with data is an essential element for any business type app. I don’t have the time to make one, unfortunately. :slight_smile:

Cheers,
Murray

@murrah Also might be useful a thread Package discovery for new users where you can find a link on Elm finder.

1 Like

If you like elm-style-elements then you might be interested in checking out lucamug/elm-style-framework. It started out as a higher-level UI library on top of style-elements, and now builds on top of mdgriffith/elm-ui. I use it in production and I like it.

2 Likes

Thanks all. I will check them out.
Murray