8 ms·
Show HN: WeUseElixir - Elixir project directory
- taddgiles 1y agoWeUseElixir 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.
- mig4ng 1y agoI use it for many side projects, and I am starting to use it for bigger ones too. Should we submit personal projects and smaller side projects, or is this for fully fledged app only? Also, should we add know open source applications such as Plausible[1]? I am always happy to see Elixir and Erlang hit the front page. [1] - https://github.com/plausible/analytics https://github.com/plausible/analytics
- freedomben 1y agoJust 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
- innocentoldguy 1y agoThere are open source projects on the site, such as Oban and Absinthe. Is that what you’re looking for or did you mean something else?
- taddgiles 1y agoYes to all of the above. The goal is to share as much as possible what people are doing with Elixir.
- huqedato 1y agoSame 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.
- bglusman 1y agoNice! There’s also this[0] project run by community /elixir-school[1] maintainers [0]https://elixir-companies.com/en https://elixir-companies.com/en [1]https://elixirschool.com/en https://elixirschool.com/en
- ch4s3 1y agoHow do I get in touch to correct the tech stack on one of these?
- taddgiles 1y agoHello! Email me at hello@14hippos.com and I can get that fixed up for you.
- taddgiles 1y agoA big thank you to everyone for the interest, the suggestions and for the many submissions. Thank you!
- kylecazar 1y agoCool -- I've suspected Elixir is used in many more companies than it's "famously" used in. A quick survey on Indeed somewhat confirms that. Big fan, of both the language and community.
- garbthetill 1y agoyep, 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
- sarchertech 1y agoOne of the devs at truth social is fairly infamous in the elixir community. I have several friends who worked with him at other places.
- typpilol 1y agoInfamous for what
- cess11 1y agoProbably being an insufferable prick, if this is to be believed: https://www.reddit.com/r/elixir/comments/1lj907v/comment/mzj4bzy/ https://www.reddit.com/r/elixir/comments/1lj907v/comment/mzj... In my experience the Elixir community is inviting and inclusive, promoting pretty much the opposite ethics of what "Truth Social" stands for.
- arrowsmith 1y agoWho?
- input_sh 1y agoTruth 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.
- mmaia 1y agoA suggestion for addition: > Plausible Analytics is a standard Elixir/Phoenix application backed by a PostgreSQL database for general data and a Clickhouse database for stats. https://github.com/plausible/analytics https://github.com/plausible/analytics
- taddgiles 1y agoWill do, thx for the idea!
- pixelmonkey 1y agoI 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. https://se-radio.net/2018/08/se-radio-336-sasa-juric-on-elixir/ https://se-radio.net/2018/08/se-radio-336-sasa-juric-on-elix...
- itissid 1y agoHave 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
- jamauro 1y agoYou can add: ElectricSQL Supabase Felt There’s another list here: https://elixir-companies.com https://elixir-companies.com
- taddgiles 1y agoThx for the tips!
- recroad 1y agoElixir is fantastic. Liveview is a huge productivity multiplier - lot of boilerplate disappears.
- andrewflnr 1y agoLiveView 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?
- SJMG 1y agoLiveSvelte or LiveVue have some impressive demos. I've never used them though.
- ipnon 1y agoLiveView 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.
- andrewflnr 1y agoI guess I should have said "offline-first".
- arcanemachiner 1y agoAlpine.js is a good tool for this, but it can have issues when LV updates the DOM.
- mau013 1y agoCheckout Hologram. It aims at client based state (but it’s all Elixir as it transpiles the Hologram pieces to JS).
- jamauro 1y ago
- didip 1y agoWhy not just make it a yaml document in a git repo instead of making users register?
- taddgiles 1y agoThat's worth considering. Avoiding the user registration would certainly be nice.
- fbn79 1y agoI 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.
- andrewflnr 1y agoThat'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.
- linkdd 1y ago> It's even possible to run BEAM on bare metal, (almost?) entirely in place of the normal OS. How? With a unikernel?
- signa11 1y agoi would think so, no other option afaik.
- toast0 1y agoI'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)
- 1y ago
- desireco42 1y agoI 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.
- taddgiles 1y agoThx! Glad you're finding it useful!
- shomp 1y agoRight 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.
- _kidlike 1y agoIIRC, Kagi is written in Elixir
- k__ 1y agoHalf-OT: When would you use Elixir, when Erlang, and when Gleam? I know relatively new projects that started with Erlang, despite Elixir being available and stable for years now.
- cess11 1y agoErlang 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.
- mmcclure 1y ago> 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 think you meant Elixir there, not Phoenix?
- cess11 1y agoElm targets web browser languages, so I considered Phoenix to be a better point of comparison than Elixir broadly.
- mmcclure 1y agoI’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).
- tommypalm 1y agoThis 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.
- taddgiles 1y agoGreat suggestions! Thank you for taking to the time to share those.
- deleted 1y ago[deleted]
- err931 1y ago[dead]
- nenenejej 1y agoOh Elixir is still niche then :) (For any sufficiently popular language it would not be possible or interesting to curate such a list)