HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
elixir-lang
elixir
Elixir2012–2026
elixir-lang / elixir

elixir

Simple from zero to scale

87Distinct people
109Mentions
1Explicit recommenders
26.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Simple from zero to scale

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

If you haven't read the code for how Elixir handles Unicode support [0] I highly recommend doing so. At compile time it reads from several Unicode Character Database text files…

careersuicide used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:56:56 AM UTC.

Try Gleam direct repository linkDebated

The discussion centers on whether Gleam's ergonomic design and type safety make it a superior choice for AI-assisted development compared to mainstream languages, despite its smaller ecosystem. A significant portion of the conversation is dedicated to debating the community's political activism and code of conduct, with some users citing these as deterrents while others defend them as standard anti-harassment measures.

137 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year109 dated mentions

Observed mentions: 2012-05-25 17:27:18 UTC to 2026-02-21 11:01:10 UTC.

0369122012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 7 mentions; 5 submissions, 2 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 9 mentions; 4 submissions, 5 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 12 mentions; 7 submissions, 5 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 12 mentions; 3 submissions, 9 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 10 mentions; 2 submissions, 8 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 9 mentions; 5 submissions, 4 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 12 mentions; 5 submissions, 7 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC202
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC312
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC752
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC945
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC1275
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC1239
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC1028
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC725
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC954
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC725
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC523
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC615
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC1257
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC725
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC110

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Elixir is a programming language designed for building scalable and maintainable applications. For more about Elixir, installation and documentation, check Elixir's website. Bug reports For reporting bugs, visit our issue tracker and follow the steps for reporting a new issue. Please disclose security vulnerabilities privately in our Security page. All currently open bugs related to Elixir are listed in the issues tracker. The Elixir team uses the issues tracker to focus on actionable items, including planned enhancements in the short and medium term. We also do our best to label entries for clarity and to ease collaboration. Our actionable item policy has some important consequences, such as: Proposing new features as well as requests for support, help, and guidance must be done in their own spaces, detailed next. Issues we have identified to be outside of Elixir's scope, such as an upstream bug, will be closed (and requested to be moved elsewhere if appropriate). We actively close unrelated and non-actionable issues to keep the issues tracker tidy. If you believe we got something wrong, drop a comment and we can always reopen the issue. By keeping the overall issues tracker tidy and organized, the community can easily peek at what is coming in new releases and also get involved by commenting on existing issues and submitting pull requests. Please remember to keep the tone positive and be kind! For more information, see the Code of Conduct. Proposing new features You can submit proposals to the Elixir Core mailing list, either through the web interface or by subscribing to it at elixir-lang-core+subscribe@googlegroups.com. Remember to include a clear problem description, compare the proposed solution to existing alternatives in the Elixir ecosystem (and in other languages if possible), and consider the potential impact your changes will have on the codebase and community. For these reasons, we strongly advise you to refine ideas and gather feedback in community spaces (ElixirForum, Discord, etc) before submission. Our website includes a general outline of the language history and its current development focus. Once a proposal is accepted, it will be added to the issue tracker. Features and bug fixes that have already been merged and will be included in the next release are then "closed" and added to the changelog before release. Compiling from source For the many different ways to install Elixir, see our installation instructions on the website. However, if you want to contribute to Elixir, you will need to compile from source. First, install Erlang. After that, clone this repository to your machine, compile and test it: git clone https://github.com/elixir-lang/elixir.git cd elixir make Note: if you are running on Windows, this article includes important notes for compiling Elixir from source on Windows. In case you want to use this Elixir version as your system version, you need to add the bin directory to your PATH environment variable. When updating the repository, you may want to run make clean before recompiling. For deterministic builds, you should set the environment variable ERL_COMPILER_OPTIONS=deterministic. Contributing Contributions to Elixir are always welcome! Before you get started, please check out our CONTRIBUTING.md file. There you will find detailed guidelines on how to set up your environment, run the test suite, format your code, and submit pull requests. Note you must disclose the use of coding agents and AI written code in your contributions. See the "Using AI and coding agents" in CONTRIBUTING.md. Important links Elixir Documentation Elixir Core Mailing list (development) Code of Conduct Issues tracker Changelog Security Policy Open Source Policy License "Elixir" and the Elixir logo are registered trademarks of The Elixir Team. Elixir source code is released under Apache License 2.0. Check LICENSE file for more information.
Read the full README on GitHub

What Hacker News says

109 sources
I'm currently working on a prototype that does exactly this (in our case, the Gleam is essentially a typed calculation module wrapped in Elixir's great libraries for network and database interactions but its all net-new application instead of an existing Elixir codebase). Its not yet perfect, but I've been eagerly following along with this PR: https://github.com/elixir-lang/elixir/pull/14262#issuecommen... Seems like (one of) the next Elixir releases will include the support you're looking for in mix.
In My first impressions of Gleam
Hey Jose, thanks for your comment. I actually wanted you to notice, because Elixir is still one of the best languages out there (and BEAM is the best), but developer experience IMO is deteriorating over the years. It's not a problem for people who are completely immersed and can remember most of the guidelines/policies/idiosyncracies. Getting new people on board or even following guildeilnes is hard when work process is interrupted. Some paper cuts are brought on Elixir Forums but I've seen them evaluated as not providing enough benefit to developers or being against design - and I found them through trying to solve very similar problem. I like some changes in devex direction (e.g. recent LSP initiative), yet I think it's lagging to other languages. I often get cut by various - often small things - but there are so many. Disappointed is a
Read the rest
mplified by good experience with other (I'll give it to them - more popular or better funded) languages. Yet given very static download count of Jason on Hex I think that rarely new projects are started in Elixir, while Erlang's popularity is slowly but visibly growing, so I don't think I'm alone in my perception. I will try to respond succintly to followup to not blow up already large text, so let me know if you'd like more info. https://imgur.com/a/iWbTEUf I've uploaded some weirdness I experienced in recent weeks/months. > (ExDocs breaking) ... please give an example In screenshot - happened with Chromium,Safari and Firefox ~6 months ago. Often with OTEL libraries. Today I can't reproduce, but I also have DNS blackholing enabled. Maybe it's fixed or maybe that was analytics breaking on me. > WRT: checking if you can dynamically add children to a Supervisor Our case was bug caused by change of Dynamic to Normal (we had an app that would be replace in specific context, but otherwise should be supervised as usual). After that we started observing comm channel blocks due to dead connections - it was 77 1/2 bug: Line 77 shut down the child and Line 78 deleted the child, in 77 1/2 Supervisor restarted the child so it couldn't be deleted anymore - and it was able to pick some comm channels. It's not hard to fix, but one has to know that. I don't like "not recommended", as many things aren't recommended but we do it given circumstances. It's better to know the difference and being able to make decision by oneself. > Also note docs are available in the terminal, both inside `iex` or by doing `mix help SomeModule` `mix help Ecto` shows missing task, so I suppose it's a typo (or something I don't have). Help in `iex` (and probably `iex -S mix`) requires dependency download, build, maybe rebuild and some flag and env manipulation (so that app doesn't start entirely) and I hope I started it before breaking compilation because otherwise it won't. Yes, it's there - I agree, but it takes energy to use. > ...but note we have always listed the versions in the sidebar I know, however as text moves places the worst possible example of it is like: Search for A - open - notice wrong version - check which one I should be using in code - change to version B in sidebar - not linked, got bounced to home page - search in ExDocs - nothing found (searchbox often fails to return results, see screenshot) - get back to search engine - type exactly version and query - click there. When it repeats multiple time it starts to become unavoidable busywork. > - "compilation process can break and Elixir isn't aware that it was interrupted" - our tooling has code to deal precisely with this: [https://github.com/elixir-lang/elixir/blob/c5c87a661efac6809...](https://github.com/elixir-lang/elixir/blob/c5c87a661efac6809...). If it still happens, it is a bug and must be reported, so we can fix it I'm 99% sure that it's a result of circular dependencies and maybe one pass fails but then the other starts overwriting or something. But could also be something in compilation pipeline (we have extra steps). I wish there was something like "mix elixir_checks.compile_consistency" (with a flag to send a bug report). Right now feeling a bug means: isolating and justifying it. It takes energy, especially when codebase is complex, big and ridden with prior decisions. I considered doing that, but I think environment is defensive and I'm easy person to pull into fights, but don't enjoy them. > "dependency compilation is not parallelized" I made a mental shortcut - i.e it's using only one core right now, and it's taking approx. 2-3 minutes. Looks like PR would resolve it, but not sure when we'll be able to use it. > when doing umbrella tests on non compiled code seed influences order of compilation In short (I don't know cause) if I run `mix test` from umbrella I'm seeing different compilation order on applications and their dependencies (if I hadn't compiled those before). Those applications aren't guaranteed to be in homogenous dependency state (in fact when I'm looking for dependencies in `mix.exs` I can see popular libraries spread across 3-4 different major versions). Unlucky run happens and consensus is "don't debug `rm -fr _build`). > Our philosophy here is to emit compilation warnings instead of compilation errors whenever possible, so you can run, debug, and test your code, instead of forcing your code to be pristine while you are still working on it. This is big pain point for me. I care about some warnings, but not for others (e.g. in libraries that ale planned to be dropped ). I also can't enable those I'd like (deprecated - so my colleagues don't use something we want to sunset in root or dreaded circular dependencies). I solved this by complex check chain and custom filters, but in "competition" I get those out of the box. I won't say that Elixir is worse technology it's just... I know others which are better (but not BEAM, BEAM is THE BEST)
In Coordinating the Superbowl's visual fidelity with Elixir
Thanks for the feedback! I'd like to comment on some points: - There seems to be some confusion in relation to warnings. There are two types of warnings, compile-time warnings and runtime warnings. Compile-time warnings are emitted during compilation time and therefore should not affect test runs, aka, when you run code. Runtime warnings can be captured during tests, using `ExUnit.CaptureIO`. Deprecating modules and functions are compile-time warnings - Indeed you need to enable `--warnings-as-errors` to halt compilation due to warnings in CI. Our philosophy here is to emit compilation warnings instead of compilation errors whenever possible, so you can run, debug, and test your code, instead of forcing your code to be pristine while you are still working on it. The focus here is precisely to provide a better developer experience. Then if
Read the rest
you do want them to fail upfront, as in CI, you pass the flag - "when doing umbrella tests on non compiled code seed influences order of compilation" - I am not sure what this means, sorry. Can you expand? But generally speaking our test framework randomizes test order by default, because you should not depend on order between tests or have dependencies between test files - "dependency compilation is not parallelized" - when a dependency is compiled, the files in a dependency are parallelized, but not the dependencies themselves, so I'd very surprised if it only used 10% CPU before. In any case, a PR adding this feature was merged this week: https://github.com/elixir-lang/elixir/pull/14340. In my machine, compiling a project like Livebook uses 350% CPU without the flag above (showing some parallelism), and with the flag above set to 4, it is about 800% (250% + 250% + 150% + 150%). Note my machine has 8 performance cores and I don't get additional gains beyond 4 partitions - "compilation process can break and Elixir isn’t aware that it was interrupted" - our tooling has code to deal precisely with this: https://github.com/elixir-lang/elixir/blob/c5c87a661efac6809.... If it still happens, it is a bug and must be reported, so we can fix it - "try checking if you can dynamically add children to a Supervisor" - the top 4 results for "dynamically add children to a Supervisor in elixir" in Google and Ecosia lead to correct answers in the ElixirForum, StackOverflow, and the documentation. For completeness, I have also asked Claude, which gave a perfect answer (IMO): https://claude.ai/share/9d1e2ad4-2e43-4c32-a293-6fff32dd7001 - "there isn’t even a link to „open newest”" - this has been added to ExDoc, here is one example: https://hexdocs.pm/req/0.5.9/readme.html - but note we have always listed the versions in the sidebar - "sidebar with new ExDocs break for some reason so there is no navigation" - please give an example, as this would be a bug and should be fixed, and I am not aware of any reports at the moment. Also note docs are available in the terminal, both inside `iex` or by doing `mix help SomeModule`
In Coordinating the Superbowl's visual fidelity with Elixir
> ..but things like macros in Ecto.... Well, The whole language itself is built on macros. The following series of articles certainly helped me stop worrying and love the macros.. https://www.theerlangelist.com/article/macros_1 Some interesting insights from the article: "Elixir itself is heavily powered by macros. Many constructs, such as defmodule, def, if, unless, and even defmacro[1] are actually macros...." [1] https://github.com/elixir-lang/elixir/blob/v1.18.2/lib/elixi...
In Embedding Python in Elixir, it's fine
Maybe this isn't the best place for feedback, but I was inspired to give this a go. Sadly it didn't work out. First error was: sh: line 1: Application: command not found By visiting https://new.phoenixframework.org/test-elixir-app, I could see the proper output: Application name must start with a letter and have only lowercase letters, numbers and underscore So I changed to test_elixir_app, and got this output: downloading https://github.com/elixir-lang/elixir/releases/download/v1.17.3/elixir-otp-27.zip fedora is not supported This was a spur of the moment thing, so maybe I'll try from an Ubuntu machine or something another time, but the friction was unfortunate. Grats on the launch though, the demo gif of using the project installer looked great.
In Phoenix LiveView 1.0.0 is here
Elixir feels like that as well (in the same broader sense). Their trick of 'use' being require+import (ala perl) becomes brilliant when you realise import can be a macro, and that's how libraries inject things into your current namespace. Consider also: https://github.com/elixir-lang/elixir/blob/main/lib/elixir/l... Julia looks beautiful but I keep forgetting to play with it. I'd use the startup time as an excuse, but it really is just 'I keep forgetting' if I'm honest.
In Defense of Lisp macros: The automotive field as a case in point

Showing the 15 most recent of 109 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.