DiodonHystrix

DiodonHystrix

What popular packages are you using in your projects - mostly phoenix projects?

Hey I come from Ruby world and I would say that there are some well-known gems like Devise, ActiveModelSerializer, Sidekiq, etc, that most of Rails projects are using. What I mean is that when I need to solve A I can just reach for some well known well-used gem A.

And how does it look like in Phoenix? From what I see a lot of packages are not actively maintained and many lack support for Phoenix 1.4, which shouldn’t be a big deal if a package is Phoenix oriented. I spend a lot of time looking for a correct package and many times I am disappointed.

What are your thoughts? I would like to build Saas serverside rendered, need a login, some permissions probably, background jobs, maybe some statistics, activities feed…

Does anyone feel similar? Or do you just build everything yourself? Maybe you miss something from other ecosystems?

I asked this on reddit, but I haven’t received any meaningful answer, so maybe here I will have better luck.
Just please don’t tell me not to use many packages, because they are bad or wrong. I understand that point of view, but I don’t have a team of 10 people to implement every necessary feature, it’s just me.

Most Liked

danschultzer

danschultzer

Pow Core Team

I felt similarly when I first started out with Phoenix. It seems a lot of the earlier elixir libraries are ports from popular ruby libraries, made by developers who just started out with elixir. It’s constantly improving though, and there are some great libraries for what you need.

For background jobs, I really like honeydew. We’re planning to use it in production soon. For user authentication, I’ve written Pow and currently run it in two production apps. For permissions you should build it yourself, it’s super simple with a plug module.

I don’t like to waste too much time with my (tiny) team on things that isn’t essential to our business, so I get where you are coming from. It took some time to switch from rails mindset to phoenix/elixir, but it was definitely worth it for us. Our development is running much smoother now, and after learning the a-z with our first app, it has been an incredibly easy process to build new apps, and we haven’t felt much was lacking in the ecosystem.

mbuhot

mbuhot

There are a few packages that implement job queues over a DB table.

EctoJob is one I maintain that is little more than GenStage producer and ConsumerSupervisor triggered by Postgrex.Notifications.

Elixir makes building these things really simple and fun :slight_smile:

sanswork

sanswork

The packages I use most often across all my projects are(in no order):

comeonin
httpoison
money
timex
bamboo
distillery
absinthe + related
geo_postgis

For auth if its b2c I’ll reach for uberauth and social logins but generally I prefer just a self rolled auth system using comeonin permissions self rolled too. I never really liked working with stuff like cancan.

Background jobs I just use separate processes or genservers.

Where Next?

Popular in Questions Top

greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New

Other popular topics Top

WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36432 110
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54250 245
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement