Elixir and Phoenix

Introduction

I wanted to experiment with the Erlang VM after hearing about WhatsApp’s scalability successes. At the same time, I wanted to get serious about pure functional programming.

Elixir was the obvious bridge: it runs on the Erlang VM, feels a lot like Ruby, and has a Rails‑like framework in Phoenix. After years of using Rails for prototypes, Phoenix felt like a natural experiment.

The Experiment

To exercise the stack, I built a small chat app (I know, I know). But the premise was different: chat apps lack a simple way to express nuance beyond UTF‑8 emojis. I wanted a lightweight, text‑first way to act out intent.

So I added slash‑command style actions with aliases. Example:

Aliases made it feel even lighter. :) Fred did the same thing as /smile Fred.

Takeaways

Using a functional language was a mindset shift, but it became natural quickly. The bigger surprise was how approachable Phoenix felt. It had the structure and convention I was used to, but with the resilience of the Erlang VM underneath.

I did not test Phoenix’s scalability limits, but the experiment convinced me the platform is real. If I ever need high‑concurrency chat or realtime features again, it is near the top of the list.

The repo is now open source: https://github.com/ryjen/emotext

I also ran into the painful reality of upgrading old Elixir/Erlang/Phoenix versions — AI helped a bit, but it was still messy. The UI is currently broken; the beautiful, minimal monospace Craigslist vibe with pastel colors is shattered for now.

In the meantime, here are a few solid tutorials:

Todo

  • I did not get around to testing the scalability of Phoenix and the Erlang VM via simulated environments
  • Slack addon?