The ability to upload files is a key requirement for many todays web and mobile applications. In this tutorial, we will look at how we can accomplish file uploads to local storage and S3 server in Phoenix with the help of Waffle library.
Sooner or later you may need to convert a string in Elixir to a camel or snake case. With Macro module (available in Elixir without extra dependency) it's super easy.
People will tell you it's an antipattern, but what if a library needs you to do this?
In this post, you’ll learn how to easily redirect users to the previous path using the Navigation History plug.

It’s super easy!
Now, that the dust after #ElixirConfEU2021 has settled, Michał Buszkiewicz wrote a short review about this event.
➡How was it?
➡How did he feel as a speaker?
➡What was the most interesting?
➡Is it worth it to go for next year's ElixirConf EU 2022 event?
The macro mechanism in Elixir isn't only an interesting metaprogramming feature - in fact, it's at the language’s very core. And the more awesome fact is that using macros, you can override the algorithm of defining functions itself!
Check how to override Kernel macros in our #todayIlearned series, this time with Michał Buszkiewicz as a Guide.
Have you ever wondered about tests running inside the IEx shell?💡
It's not so simple but it’s worth it! 💪🏻
That's why our Elixir & React Developer Oskar Legner shared his know-how in #todayIlearned series 🚀
Check here 👉🏻
Building an application can be really time and money-consuming as well as potentially risky. The last thing you want to do is spend your energy and time creating something that might not be profitable for your business.
By defining a clear MVP scope as early as possible, you can lower overall expenses and risk.
Elixir and Phoenix, in turn, is the perfect technology for most of the applications and MVPs you plan to build. Why?
Check out more!
Sooner or later you'll have to change the null constraint in one of your DB relations. How to do it easily in Ecto?
So you don’t know what’s the type of struct you’re passing somewhere? Maybe it can be one of few types and you have to distinguish them? Or any other reason… But it’s about checking the struct type. Just use one of the coolest Elixir features - pattern matching!
Check this out!