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, 6:01:08 PM 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

12 sources
This is very good feedback and show flaws in areas that could be improved. Thank you! I will add some comments below but they are not meant to dispute your claims but to find places where we can improve. > The log messages suck. If I want to use them in production and actually ship them to ELK or similar, the format really sucks. Do you mean the Logger messages? Their format is customizable. Can we make this clearer? > Getting information on what happens at compile time vs run time is hard. Which kind of information do you need? Is it something that would fit the meta-programming guide on the website? Or maybe we are missing a more detailed compiler guide? > How do you handle operating system signals? like when your autoscale group decides to scala down and you get a SIGTERM with some time to handle it, what do you do? wrapper scripts suc
Read the rest
k. It was not possible cleanly until OTP 20, so it is fairly new. At least, from 19.x onwards, the VM will shutdown cleanly on SIGTERM - which means shutting down all applications and supervision trees. A lot of guides (including the Elixir guides) cover supervisor only through the fault tolerance perspective, while they also encapsulate the start-up and shutdown logic. I have opened an issue for this here: https://github.com/elixir-lang/elixir/issues/6479 > What command do I run? when do I run an app vs compiling it? What If I want command line args? Where's a good example of writing an app, which is a daemon, and using an escript to reconfigure it at runtime? Running your code is a matter of starting your application. We don't really have a `main` procedure as an entry point. Your system is designed as a series of applications and you start them. If you are using mix, it should be a matter of `mix run --no-halt`. If you are using releases, it automatically starts the system for you. Where would you expect to find this information? Did you see `mix run` at all? Maybe in the escripts page we should point to `mix run` as it seems an `escript` is really not required in your case? > The error messages. Holy hell. What actually caused a pattern match to not work? what is it expecting? especially a few function calls deep - like interaction between tuples and arrays and keyword lists. Those particular error message were fixed in Elixir v1.5 (with OTP 20+). Pull request is here: https://github.com/elixir-lang/elixir/pull/6127 > Flow / Genstage and getting them into a supervision tree? what's the best practices. Please open up an issue. If this is not clear form the documentation, it is a "bug" in the docs. It is also worth mentioning that Ben Marx, Bruce Tate and I are working on book called "Adopting Elixir" (https://pragprog.com/book/tvmelixir/adopting-elixir). The last three chapters focus exclusively on production aspects and it answers many of the questions here (log configuration, system termination, how to run it, design, etc).
In Why Elixir (2014)
Related: Dig into your language's source code and code of major libraries! Your standard lib is probably the best examples of idiomatic code and efficient code that you're going to have access to, written by the authors of the language itself. You'll notice bugs, inconsistencies and poor docs which gives you opportunities to contribute upstream, at the same time making you read more and learn how particular features work under the hood, which might give you new perspectives in your own code. In Java, this might be java.util.Collections package, or java.util.Concurrent. or in C++ that might be Boost. In Elixir, I start with Kernel.ex[0] https://github.com/elixir-lang/elixir/blob/master/lib/elixir...
In Learn to Read Code
> * Bus factor of 1? The core team is made of six members: @josevalim, @fishcakez, @ericmj, @lexmag, @whatyouhide and @true_droid. We have more than 500 contributors on GitHub, it is an accessible codebase. The areas where the bus factor is actually 1 are very rare (and when I can I delegate work to minimize that). > * No visibility of improvement process (i.e. PEP)? All planned improvements are currently in the issues tracker: https://github.com/elixir-lang/elixir/issues. It is a short list because it is a stable language and the focus is on the ecosystem rather than the language. Proposals are sent before hand to elixir-lang-core mailing list for discussion. > * Long term support? List of consultancies currently involved with Elixir: https://github.com/doomspork/elixir-companies#consulting Plus Plataformatec has been doing and supportin
Read the rest
g Elixir for 5 years and Erlang Solutions has been supporting Erlang for way longer than that and they also provide Elixir support.
In How Elixir helped Bleacher Report handle 8x more traffic

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.