for the lazy: https://github.com/phoenixframework/phoenix
[1] https://quilljs.com/ [2] https://github.com/Operational-Transformation/ot.js/ [3] https://firebase.google.com/ [4] https://github.com/phoenixframework/phoenix
https://github.com/elixir-lang/elixir
https://github.com/elixir-lang/plug
$ mix phoenix.new my_app
which then sets up the directory structure for you to just run $ mix phoenix.server
and have cowboy serving your webapp. The guides then tell you which files to add new routes, controllers, models, etc (in a way similar to Django or Rails). All that said, it's in Elixir at that point, but maybe you could still infer how the applications and gen servers and whatnot are structured from it.It may be worth asking josevalim and chrismccord in #elixir-lang for tips on setting it up, since they obviously must know how to set up cowboy pretty well to build a system on top of it.
I think Erlang and things like cowboy and OTP are absolutely amazing for the web, but Elixir has made things 100x easier to get up and running with them.
I'm a newbie but I've been impressed by the tooling so far. And once you change how you think about everything the learning curve isn't too bad. =)
It has a rails-y framework that I haven't heard much about (and nothing particularly bad):
Another rising technology with a similar name. This phoenix is set to be the Rails for Elixir
https://github.com/phoenixframework/phoenix\nhttp://www.confreaks.com/videos/4132-elixirconf2014-rise-of-...
I've worked on a couple projects in Elixir already. I do still like Ruby/Rails for rendering HTML (there's years of hard work in making that an easy thing to do in Rails), so a common web app that I create lately will be Rails as a very thing wrapper around the database for rendering HTML and then an Elixir component for background jobs and WebSockets.
That said, a ton of great work is going into Phoenix[0] and I think it's very close to being suitable for both rendering HTML and WebSockets. On my next project I'll probably try and just use Phoenix entirely.
One thing I constantly keep in mind when programming in Elixir is that, using it in the same way you would use Python is a waste. For example, when I use Python, I'm not typically thinking of concurrency (outside of, "how many gunicorn workers will I need?"), because of the situation with concurrency in Python. Using Elixir (or Erlang), you really aren't taking full advantage of the language/runtime/VM if you don't take concurrency into account. If all you want to do is a little string munging, you can do it in Elixir, but it is probably not the best tool for the job.
The Mix & OTP guides available on elixir-lang.org are great, but if you want more information on OTP, the OTP chapters in "Learn you some Erlang"[2] are wonderful. You will have to do some translation from Erlang syntax to Elixir, but it is a great way to learn how to think concurrency.