WeUseElixir is a curated directory of apps, libraries and companies that use the Elixir programming language.
A few years ago I was introduced to Elixir. It was the first functional programming language I'd ever used. I became a huge fan of the language and the community.
I've now used Elixir in a variety of different projects both professional and personal. It's become my go-to language for building web applications. It is just fun to work with.
I created WeUseElixir as a way to increase awareness of the Elixir language and how it's being used. WeUseElixir provides a place for creators to share their projects and allows others to discover new and interesting projects.
Same here, using Elixir only for personal/hobby projects. Sadly, my customers when they hear about Elixir they get scared as hell. The "song" they love includes only JS, Java, C#, or Python.
Just personal opinion, I would get a lot of value out of having open source projects on there like plausible. I'm fact that might be the most useful thing personally
I just did a small programming side project with a friend in Elixir and I was pretty impressed with the language, especially how it approaches functional programming, concurrency, parallelism, and “programming in the large” (e.g. networked systems and clusters).
I still think there’d be some sort of mental hurdle for me to consider using it for a project of the kinds described on WeUseElixir (vs my go-to language of Python).
But simply toying around with a concrete example of a concrete “word count” program scaled up to multi-core and multi-node made me “get” Elixir a lot more.
Also, I highly recommend this podcast interview with the author of “Elixir in Action.” He does a really nice job describing what makes Erlang and Elixir unique vs other commonly used backend programming languages.
Have you tried the codecrafters exercises, you can build a shell and a redis cache in it. It's not even that hard when you have a nice planned laid out like they do
yep, its always funny to come across a company that uses it. For me the latest one was tubi, ive heard truth social also uses it not 100% sure. Sometimes I wonder if they're quiet about elixir praise is because the technology just works with very little to no issues
Truth Social is just Mastodon on the backend and an alternative Twitter-like frontend called Soapbox. Soapbox is indeed Elixir-based and open source.
Soapbox has a very weird history of first being forked from Gab for a feminist platform called Spinster(.xyz), then it got acqui-hired by Truth Social, then many of them left Truth Social to be independent. Soapbox(.pub) today is mostly abandonware, the team switched focus to building products on top of Nostr.
The amount of times it switched sides in its 5 or so years of existence has been truly fascinating and difficult to keep track of.
Right now I'm using Elixir to build an open-source nonprofit tech company, I will have to remember to add it to this project directory once we launch. Cool idea, keep up the good work. As a nonprofit tech company keeping costs low matters a lot, and Erlang/Elixir on BEAM makes it very easy to have tons of concurrent users with minimal overhead. Server start time is very fast. Coming from other functional languages like Clojure helps, but is not a requirement for getting started quickly.
LiveView is fun, but my problem is that in practice I often want local-first state. Is there a good way to do that with LiveView, maybe a clean way to write the little javascript snippets so they work with local state?
LiveView already has local first state. The magic in LiveView is how it uses WebSocket connections to the client to keep the client state in sync with the server state. This is why you just need to update the socket and the rest just works.
If you want to have some state that only exists on the server, then you simply don’t assign that data to the socket.
You can take a look at JS commands and hooks. Ultimately I came to the determination that while LiveView is cool, I think I want the opposite. I’m hoping Hologram will be the answer.
This is a great idea. I'd like to make a few suggestions though:
- Allow filtering by companies and libraries. I'm interested in both, but I wanted to look at just the list of companies to see if there were any I didn't recognise.
- Adding a company seems to be just adding _your_ app. It would be good to suggest companies to be listed as long as you have some evidence that they use Elixir. I know that Apple has Elixir in their Environmental team, but I'm not sure how I would go about adding that.
- Move the category filtering to the directory page. It would be more interesting to see the whole list at once and filter by category.
I have a digital studio that needs to find good companies to pitch them my services... just searching LI is not very helpful, this is way better.
Also, as a place that uses Elixir... I can find all the new tools and cool projects without watching endless videos on Youtubes... As I want to spend most of my time working on projects, not trying to catch up.
I think this is excellent, thank you for making it in this format.
Erlang is leaner and more elegant than Elixir. If you don't need the bells and whistles of Phoenix and Ash and so on, and your team is senior enough to just go with the syntax, then Erlang is a good option. Especially if you're doing sophisticated network plumbing and distributed processing stuff but not much direct interfacing with non-technical users.
Gleam takes inspiration from Elm, so if that's your thing and something you'd consider using, probably go with that rather than Phoenix. Again, if your team can handle it.
Personally I build web interfaces and so on as well as plumbing stuff and I'm also very fond of the one language through the entire stack experience it allows, so I mostly stick to Elixir. Prototyping in REPL, moving to scripts, and then into proper modules in the more stable projects. It also has a very nice code generation 'story' that allows a lot of nice shortcuts and sophisticated tools.
Small nitpick - I'd say the main Gleam web framework, Lustre, takes inspiration from Elm. Gleam itself takes inspiration from a number of sources, Rust, Erlang, the ML family of languages. I think Gleam is a lovely little language (though I'm also a huge fan of Elixir).
Is never say erlang is more elegant than elixir, simply due to things like ending functions with commas vs periods (yes they have actual meaning, no it's not really something worth worrying about), lack of pipes, and lack of things like with
They both compile down to the same bytecode, and both have fairly optimum compilers
As for gleam, it's a fun ml dialect, worth using if that's your thing. Same goes with LFE, if you like lisp
> Gleam takes inspiration from Elm, so if that's your thing and something you'd consider using, probably go with that rather than Phoenix. Again, if your team can handle it.
I’m not sure I’m following. Gleam is inspired by Elm in a lot of ways, and the major draw over Elixir would be the Elm-inspired type system, but Gleam is still a language not a web framework (which Elm is not either, since it only targets clients afaik).
I never used Erlang, and I'm a functional programming fan. But languages based on heavy VM that abstract OS away always make me doubt that's the right direction.
That's not a crazy instinct, and maybe if OSs were better you would even be right, but there's not really another way to get a skrillion communicating processes that can all crash/fail independently. Without a dedicated VM, all the other approaches are either less safe or too inefficient.
I consider BEAM an indication of a direction that OSs could and maybe should move. It's even possible to run BEAM on bare metal, (almost?) entirely in place of the normal OS.
I've built a hobby OS around BEAM... BEAM doesn't require a whole lot from the OS, I built a minimal kernel that runs a single process, which you could consider a unikernel or at least very close. I had originally wanted BEAM in ring 0, but I had a lot of trouble getting started. This way, I can just use a pre-compiled BEAM for FreeBSD and don't have to fight with weird compilation options. Anyway, with x86-32 at least, I can give my Ring 3 process access to all the ioports and let it request a mmap of any address, so the only drivers I need in the kernel are IRQ controllers, timers, and pre-beam console. Once beam is up, console i/o and networking is managed from erlang code (with a couple nifs)
It's almost like an OS in itself and initially designed to be like a more capable and robust OS on top of rather constrained computers. In my experience it's trivial to shell or port out to the environment when I want to, and I also see people that I don't think of as highly skilled low-level programmers do things with NIF:s so that can't be exceptionally demanding either.
A few years ago I was introduced to Elixir. It was the first functional programming language I'd ever used. I became a huge fan of the language and the community.
I've now used Elixir in a variety of different projects both professional and personal. It's become my go-to language for building web applications. It is just fun to work with.
I created WeUseElixir as a way to increase awareness of the Elixir language and how it's being used. WeUseElixir provides a place for creators to share their projects and allows others to discover new and interesting projects.
reply