adamu

adamu

What libraries do you pull in for a fresh project?

When starting a new project, do you have any go-to libraries you pull in out of habit/preference?

For example, Ash, Credo, Mox, ExMachina, etc.

Most Liked

eahanson

eahanson

I’m a co-author of Moar and I agree with your statement :slight_smile: … check out the very first line in its readme:

A dependency-free utility library containing 100+ useful functions. Add the library to your project, or just copy and paste the bits that you want.

The library was extracted from a bunch of code that I copied and pasted between projects (I’ve built 20+ Phoenix projects by now) and putting it in a public library is the easiest way to reuse it.

Moar and similar libraries probably have at least a few functions that are useful for others, so I’d recommend perusing the docs to see if anything jumps out at you, and then consider copying that code (and modifying it as needed), or adding the library to your project (Moar is dependency-free, and I assume most other utility libraries are). Moar’s docs have a short list of other utility libraries; if you are the author of such a library, feel free to add it to Moar’s docs.

10
Post #9
sodapopcan

sodapopcan

If you aren’t Ash’ing then Flop along with Flop.Phoenix along with Let Me covers all of pagination/filtering/sorting/authz in a pretty nice way. Ash was, in part, born out of not having these basic necessities but if you aren’t going to use Ash (which is of course totally fine) then these help a lot (and play nicely together). I really don’t like to ping but these libs are all by @woylie who has another very helpful one in ecto_nested_changeset. Really, I wish Phoenix had out-of-the-box solutions for all of these thing, even just as generators (a la phx_gen_auth) as it’s all stuff every project needs.

There’s also Sobelow.

To be a little catty and flip the question, I intentionally shun any type of “helper” libraries (I’ll pick on Moar as an example) and argue loudly against them in a team situation. At best they are unnecessary.

adamu

adamu

Thanks for the responses all, it’s useful to see what people find useful, there were a few in there that were new to me, and I’m sure this thread will be helpful for others starting new projects too :slight_smile:

This one made me :face_with_raised_eyebrow: - I usually try to remove Timex from legacy projects unless there is some specific functionality it’s providing that can’t easily be replaced by built-in functionality.

Last Post!

l3nz

l3nz

I always add my little baby GitHub - l3nz/say_cheez_ex: Say Cheez! for Elixir · GitHub that lets me grab the build hash / build time / environment variables at compile time, plus lets me add graphs to the docs in an easy-peasy way.

Where Next?

Popular in Discussions Top

PragTob
Hey everyone, this has been on my mind for some time and I’d love your input on it! TLDR: I feel like maps are superioer for storing and...
New
scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
New
AstonJ
Are there any Elixir or Erlang libraries that help with this? I’ve been thinking how streaming services like twitch have exploded recentl...
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
nburkley
AWS re:Invent is on at the moment with some interesting announcements. One new feature in particular is the Lambda Runtime API for AWS La...
New
PragTob
Hello everyone, I know we had quite some threads (read through lots of them) about background job processing but it remains a hotly deba...
New
matthias_toepp
I’d love to hear what people think about Wisp, the new Gleam web framework started by Gleam’s primary creator Louis Pilfold. Gleam, alon...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 130286 1222
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36654 110
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement