plcholder

plcholder

Anyone working on a Kamal2-style deployment tool for Elixir/BEAM or anything else to help make deployment easier?

I discovered Elixir six years ago, and it’s been one of my favorite languages since. It feels like cheating — fun, easy to write, and easy to reason about. I’ve spent more time and money on Elixir/BEAM content than any other language.

Elixir is often marketed as a tool for everyone — from solo devs to large teams — and I believe that, especially with tools like Phoenix, LiveView, Nerves, and Nx. With Phoenix, I can build full-featured web apps on my own with far less effort than in Go, JavaScript, or Rust.

But that’s where the smooth experience ends. Deployment feels clunky and inconsistent, especially compared to the elegance of writing Elixir or the convenience of modern serverless platforms. I don’t mind spinning up a VPS and throwing a container on it, but it feels primitive compared to what other ecosystems offer.

Serverless feels almost too good to ignore. Sure, there are concerns about vendor lock-in or surprise bills, but with open-source options and better billing safeguards, those risks are becoming manageable.

Last weekend, I was building something and wanted to use Phoenix — it would’ve been 10x easier and more enjoyable — but deployment made me hesitate. I ended up using Rust with Cloudflare Workers instead.

So here’s my question: is the Elixir core team or community working on simpler deployment solutions for solo devs — something like Kamal2, but for the BEAM? I get that orchestrating BEAM nodes is powerful and part of the magic, but for many solo devs, deployment feels like muddy plumbing compared to writing Elixir. And while BEAM might offer better performance-per-dollar on a VPS, that often misses the point — solo devs would rather save time and ship faster using platforms like Vercel or CF Workers.

TL;DR: Is anyone working on a Kamal2-style deployment tool for Elixir/BEAM to help solo devs harness its full power without the deployment headaches?

Most Liked

f0rest8

f0rest8

I wanted to chime in to say that fly has made deployment for me with Mosslet super easy, all things considered. I’m a solo dev and workign aroudn also being a stay-at-home parent so I often feel pressed for time and headspace, and I’ve been able to run a distributed setup in production with fly and using existing tooling/packaging.

With fly there is some manual managing you have to do, but my experience with it has been really great. I’ll often have documentation opened up whenever I need to update things because I’ll forget a particular command or something. But I’ve found it’s really easy to quickly find the information you need. They’re also working on a managed postgres offering so that could be another plus for solo devs and small teams.

It might be worth revisiting fly for you — anyway didn’t mean to be such an ad for them, just thought I’d share they’re part of the stack that I feel makes it possible for me to be a solo dev.

posilva

posilva

There is no reason to not deploy with Kamal2 I do not see the point of having anything specific to elixir. Elixir release bundles can be deployed as a compressed file over ssh if you want nothing except a VPS you can even bundle Erlang if you want so all in one. Other then that just ship a docker container, kamal2, fly.io, Kubernetes, ECS task and IIRC there is even a AWS lambda runtime. We need less tools and more unified ways of working so we can use as much as possible the same tools no matter what is the programming language.

Where Next?

Popular in Discussions Top

Jayshua
I recently came across the javascript library htmx. It reminded me a lot of liveview so I thought the community here might be interested....
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
jeramyRR
This is an interesting article to read. Elixir’s performance, like usual, is excellent. However, it seems like the high CPU usage is co...
New
cvkmohan
The upcoming Phoenix 1.6 release looks very interesting. Became a habit to watch the commits - and - what they are bringing in. phx.gen...
New
laiboonh
Hi all, I am trying to convince my team to use liveview over the current react. What are some of the points where one should consider us...
New
fireproofsocks
I’ve been working on an Elixir project that has required a lot of scripting. I usually reach for Elixir because I like it more (and in th...
New
hazardfn
I suppose this question is effectively hackney vs. ibrowse but we are at a point in our project where we have to make a choice between th...
New
restack_oslo
Hello, Please pardon me for any faux paux. I am 46 and this is my first time on a forum of any kind. I wanted to to get answers from tho...
New
MarioFlach
Hello, I want to share a project I’ve been working on for a while: https://github.com/almightycouch/gitgud Background Some time ago I ...
New
Qqwy
Looking at the stacks that existing large companies have used, WhatsApp internally uses Mnesia to store the messages, while Discord uses ...
New

Other popular topics Top

malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement