Interested in contributing to Messaging App?

Speaking on front end, anyone heard of Mithril.js?
I was watching this demo and it looks very nice, also the demo website editable “video” is very cool :smile:

Yeah, Mithril kept coming up as a lightweight, JavaScript-based alternative to ClojureScript back when I was enamoured with the whole “universal/isomorphic” concept (server-side Clojure/client-side ClojureScript).

And it’s being upfront:

Mithril is a modern client-side Javascript framework for building Single Page Applications.

It needs to be a business and architectural design decision that your web application needs to be implemented as an SPA - don’t get me wrong it’s a nice option to have but people these days are making the SPA decision by default. Using a framework has its benefits and its cost - and both sides have to be balanced carefully (see also (the originally controversial) Framework Bound).

One big potential issue I see with an SPA-framework is that you and your logic are utterly committed to/entangled with that framework. Migrating later to a different framework/technology is either difficult or downright impossible unless you are doing a big-bang re-write (which is a minefield/obstacle/hurdle in itself). At least with jQuery MPAs we had the option of weaning ourselves off jQuery one-page-at-time. The myriad of choices in the JavaScript space can be overwhelming (I previously thought the proliferation of OSS Java Web Frameworks was ridiculous!) - and choice isn’t always a good thing.

Given the churn in the JavaScript space we should be keeping impermanence in mind and design for replace-ability given that something we rely on now, can be out of fashion/unsupported in a handful of months. It’s OK to use something like Mithril for your own pet project (you are going to have to bear the consequences) and even within your own team as long as you realize/accept that you are raising the barrier for getting any “outside” help.

For the time being it still comes down to the basics of HTML/CSS/JavaScript. Even if there is a business case for using something like Elm there is no getting around competent JavaScript skills for writing interface code to leverage existing JavaScript libraries (and lets face you are using HTML). And Node.js is now inseparable from the web development toolchain (apparently even for processing CSS).

So nothing against Mithril.js - but if I need to “commit” to something I wonder if I should just go “whole hog” with Elm, PureScript or BuckleScript to get a boatload of other benefits or whether I should “just” be conservative and pursue competent ECMAScript.

2 Likes

ugh, this sounds like me. I could feel my front-end skills stagnating, so recently I spent more time than I want to admit over the winter going over ES5, then ES6, then Typescript, then the major frameworks (Angular2 and React) and then CSS/Sass. In the end, I found that Vue.js was a nice compromise. It’s not perfect but as a start it’s a nice replacement for jQuery. You can use it sprinkled thru-out your pages, or you can build it up with other components as a SPA. It just “feels” like it took the best parts of React and Angular.

2 Likes

In my opinion, applications that really need to be a SPA are very few.
Even if the mithril website states that the library is meant to build SPAs I dont think it would be a bad choice to use it for a few components here and there where you need dynamic content, this is the way I use Vue.js for example.

1 Like

Hi, I urge any of you who used webpack in the v1 version to go on and try webpack2, it makes things much clearer and works much better than brunch, you can check out an example of phoenix+webpack+react+ here https://github.com/odiumediae/webpacker which I forked to add semantic-ui and less to the bunch https://github.com/agustif/webpacker-semantic-ui-less

I hope I can help in this project, I just send you a DM that was started before going to vacation, and I come back to find this post!! hahaha

1 Like

Sorry for double posting.

This project makes sense to decouple in a phoenix API and a whatever frontend in my opinion, Accepting any framework is not ideal, there are options which are viable.

Like Vue maybe, since it seems to aggregate a lot from angular1,react/etc and tries to get out of the way.

next.js https://github.com/zeit/next.js/
A framework for server-rendered react apps

ReactXP which has support for a lot of platforms with a shared codebase and makes a lot of sense for a chat app…

Oh, also I really like react.semantic-ui.com and with a backend with phoenix it’s an elegant way to not use jquery (the library handles the JS parts in react, replacing jQuery)

1 Like

I started looking at Vue.js on the weekend. So far, I like what I’ve seen. I still need to dive into drab and see what It could add.

If you are looking for learning resources and like video casts I recomend you check this series.

1 Like

Hello @smpallen99 , I am interested in helping out with maintenance of your app. I am learning Elixir and I am looking for ways to help out the community and learn something on the way. I can help out with documentation, Github setup, open issues, promotion etc. Currently I don’t have a lot of work on my plate so I thought this would be the perfect time for some open source contribution.

If you are interested you can contact me here or through me a message.